Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » EMF » Simple TransactionalEditingDomain command
Simple TransactionalEditingDomain command [message #414071] Wed, 24 October 2007 09:32 Go to next message
Tomas Zijdemans is currently offline Tomas ZijdemansFriend
Messages: 90
Registered: July 2009
Member
Hi!

I try creating a command in it's simplest form. I just needs to set an
elements name. I've read the topics in the help section, but I am
confused. Here is my code:

// Gives Nullpointer:
//final TransactionalEditingDomain domain =
//TransactionalEditingDomain.Registry.INSTANCE.getEditingDom ain( "myExample");

TransactionalEditingDomain domain = TransactionUtil.getEditingDomain(book);

CommandStack stack = domain.getCommandStack();

// execute some change
Command cmd = domain.createCommand(SetCommand.class, new
CommandParameter(book, EditorPackage.BOOK__NAME, "dummy"));

stack.execute(cmd);

What am I doing wrong?


Thanks,

Tomas
Re: Simple TransactionalEditingDomain command [message #414076 is a reply to message #414071] Wed, 24 October 2007 12:13 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: cdamus.ca.ibm.com

Hi, Tomas,

Do you mean that looking up the editing domain in the registry yields a null
pointer? This would normally mean that either it hasn't been registered,
yet, under that ID or your org.eclipse.emf.transaction.editingDomains
extension is malformed in some way.

How are you attempting to register this domain?

When you ask what are you doing wrong, I don't understand to what you are
referring. This is the normal way to execute commands, and the
TransactionUtil is precisely intended to get the actual editing domain that
manages your book. Do you mean that this code snippet doesn't execute your
command? It looks like it should ...

Cheers,

Christian


Tomas Zijdemans wrote:

> Hi!
>
> I try creating a command in it's simplest form. I just needs to set an
> elements name. I've read the topics in the help section, but I am
> confused. Here is my code:
>
> // Gives Nullpointer:
> //final TransactionalEditingDomain domain =
>
//TransactionalEditingDomain.Registry.INSTANCE.getEditingDom ain( "myExample");
>
> TransactionalEditingDomain domain =
> TransactionUtil.getEditingDomain(book);
>
> CommandStack stack = domain.getCommandStack();
>
> // execute some change
> Command cmd = domain.createCommand(SetCommand.class, new
> CommandParameter(book, EditorPackage.BOOK__NAME, "dummy"));
>
> stack.execute(cmd);
>
> What am I doing wrong?
>
>
> Thanks,
>
> Tomas
Re: Simple TransactionalEditingDomain command [message #414081 is a reply to message #414076] Wed, 24 October 2007 12:32 Go to previous messageGo to next message
Tomas Zijdemans is currently offline Tomas ZijdemansFriend
Messages: 90
Registered: July 2009
Member
Thanks for helping!

Let me first explain my case shortly:
My model elements wrap objects in an owl-file, these objects have
listeners attached. When multiple objects (in different instances of the
editor) wrap the same object, I want to sync them using a command. Ex:
if a book's wrapped object changes name, change the books name. (So the
command must deal with different editing domains)

Christian W. Damus wrote:

> How are you attempting to register this domain?
I am not trying to register it - I thought it would be registered already.
>
> When you ask what are you doing wrong, I don't understand to what you are
> referring. This is the normal way to execute commands, and the
> TransactionUtil is precisely intended to get the actual editing domain that
> manages your book. Do you mean that this code snippet doesn't execute your
> command? It looks like it should ...
Yes, nothing happens here. I think this is the best way of getting the
domain (instead of getting it from the registry). Giving the book as
parameter, I hope to get the correct editing domain.

Also: I've been trying to do this in the main plugin, should I be doing
it in the .edit plugin?

Thanks,

Tomas

>
> Cheers,
>
> Christian
>
>
> Tomas Zijdemans wrote:
>
>> Hi!
>>
>> I try creating a command in it's simplest form. I just needs to set an
>> elements name. I've read the topics in the help section, but I am
>> confused. Here is my code:
>>
>> // Gives Nullpointer:
>> //final TransactionalEditingDomain domain =
>>
> //TransactionalEditingDomain.Registry.INSTANCE.getEditingDom ain( "myExample");
>> TransactionalEditingDomain domain =
>> TransactionUtil.getEditingDomain(book);
>>
>> CommandStack stack = domain.getCommandStack();
>>
>> // execute some change
>> Command cmd = domain.createCommand(SetCommand.class, new
>> CommandParameter(book, EditorPackage.BOOK__NAME, "dummy"));
>>
>> stack.execute(cmd);
>>
>> What am I doing wrong?
>>
>>
>> Thanks,
>>
>> Tomas
>
Re: Simple TransactionalEditingDomain command [message #414083 is a reply to message #414081] Wed, 24 October 2007 12:39 Go to previous messageGo to next message
Ed Merks is currently offline Ed MerksFriend
Messages: 33140
Registered: July 2009
Senior Member
Tomas,

Christian will certainly have more specific answers, but I'm curious if
book.eResource().getResourceSet() is returning the resource set, i.e.,
is the book in a resource in a resource set? Are you actually getting a
domain back rather than getting a null pointer exception? Have you
stepped into stack.execute to see what's happening It all looks like
it should work.


Tomas Zijdemans wrote:
> Thanks for helping!
>
> Let me first explain my case shortly:
> My model elements wrap objects in an owl-file, these objects have
> listeners attached. When multiple objects (in different instances of
> the editor) wrap the same object, I want to sync them using a command.
> Ex: if a book's wrapped object changes name, change the books name.
> (So the command must deal with different editing domains)
>
> Christian W. Damus wrote:
>
>> How are you attempting to register this domain?
> I am not trying to register it - I thought it would be registered
> already.
>>
>> When you ask what are you doing wrong, I don't understand to what you
>> are
>> referring. This is the normal way to execute commands, and the
>> TransactionUtil is precisely intended to get the actual editing
>> domain that
>> manages your book. Do you mean that this code snippet doesn't
>> execute your
>> command? It looks like it should ...
> Yes, nothing happens here. I think this is the best way of getting the
> domain (instead of getting it from the registry). Giving the book as
> parameter, I hope to get the correct editing domain.
>
> Also: I've been trying to do this in the main plugin, should I be
> doing it in the .edit plugin?
>
> Thanks,
>
> Tomas
>
>>
>> Cheers,
>>
>> Christian
>>
>>
>> Tomas Zijdemans wrote:
>>
>>> Hi!
>>>
>>> I try creating a command in it's simplest form. I just needs to set an
>>> elements name. I've read the topics in the help section, but I am
>>> confused. Here is my code:
>>>
>>> // Gives Nullpointer:
>>> //final TransactionalEditingDomain domain =
>>>
>> //TransactionalEditingDomain.Registry.INSTANCE.getEditingDom ain( "myExample");
>>
>>> TransactionalEditingDomain domain =
>>> TransactionUtil.getEditingDomain(book);
>>>
>>> CommandStack stack = domain.getCommandStack();
>>>
>>> // execute some change
>>> Command cmd = domain.createCommand(SetCommand.class, new
>>> CommandParameter(book, EditorPackage.BOOK__NAME, "dummy"));
>>>
>>> stack.execute(cmd);
>>>
>>> What am I doing wrong?
>>>
>>>
>>> Thanks,
>>>
>>> Tomas
>>


Ed Merks
Professional Support: https://www.macromodeling.com/
Re: Simple TransactionalEditingDomain command [message #414086 is a reply to message #414083] Wed, 24 October 2007 13:07 Go to previous messageGo to next message
Tomas Zijdemans is currently offline Tomas ZijdemansFriend
Messages: 90
Registered: July 2009
Member
Ed Merks wrote:
> Tomas,
>
> Christian will certainly have more specific answers, but I'm curious if
> book.eResource().getResourceSet() is returning the resource set, i.e.,
> is the book in a resource in a resource set? Are you actually getting a
> domain back rather than getting a null pointer exception?

Yes, I've checked that the domain is correct after running:

TransactionalEditingDomain domain = TransactionUtil.getEditingDomain(book);
Have you
> stepped into stack.execute to see what's happening It all looks like
> it should work.
I will try this.

This leads me to believe that my command contains an error:

Command cmd = domain.createCommand(SetCommand.class, new
CommandParameter(book, EditorPackage.BOOK__NAME, "dummy"));

The books name should be set to "dummy";


Thanks,

Tomas
Re: Simple TransactionalEditingDomain command [message #414088 is a reply to message #414081] Wed, 24 October 2007 13:33 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: cdamus.ca.ibm.com

Hi, Tomas,

I don't think that executing commands in listeners is a good idea. They
will end up on the Edit -> Undo menu! Moreover, if your listener is an
Adapter that receives a Notification during the execution of a Command, you
will have re-entrant command execution. I don't even know whether a
command-stack can do that.

Cheers,

Christian


Tomas Zijdemans wrote:

> Thanks for helping!
>
> Let me first explain my case shortly:
> My model elements wrap objects in an owl-file, these objects have
> listeners attached. When multiple objects (in different instances of the
> editor) wrap the same object, I want to sync them using a command. Ex:
> if a book's wrapped object changes name, change the books name. (So the
> command must deal with different editing domains)
>
> Christian W. Damus wrote:

-----8<-----
Re: Simple TransactionalEditingDomain command [message #414090 is a reply to message #414088] Wed, 24 October 2007 13:41 Go to previous messageGo to next message
Tomas Zijdemans is currently offline Tomas ZijdemansFriend
Messages: 90
Registered: July 2009
Member
I see. My listener is not an adapter.

Isn't it logical to run a command when a change is detected? Where else?


Thanks,

Tomas


Christian W. Damus wrote:
> Hi, Tomas,
>
> I don't think that executing commands in listeners is a good idea. They
> will end up on the Edit -> Undo menu! Moreover, if your listener is an
> Adapter that receives a Notification during the execution of a Command, you
> will have re-entrant command execution. I don't even know whether a
> command-stack can do that.
>
> Cheers,
>
> Christian
>
>
> Tomas Zijdemans wrote:
>
>> Thanks for helping!
>>
>> Let me first explain my case shortly:
>> My model elements wrap objects in an owl-file, these objects have
>> listeners attached. When multiple objects (in different instances of the
>> editor) wrap the same object, I want to sync them using a command. Ex:
>> if a book's wrapped object changes name, change the books name. (So the
>> command must deal with different editing domains)
>>
>> Christian W. Damus wrote:
>
> -----8<-----
Re: Simple TransactionalEditingDomain command [message #414092 is a reply to message #414086] Wed, 24 October 2007 14:07 Go to previous messageGo to next message
Ed Merks is currently offline Ed MerksFriend
Messages: 33140
Registered: July 2009
Senior Member
Tomas,

Is cmd.canExecute returning true? Have you stepped through the
execution of the command? I often remind people that the debugger is
their best friend because it can answer questions more quickly than me
(and there's only one of me).


Tomas Zijdemans wrote:
> Ed Merks wrote:
>> Tomas,
>>
>> Christian will certainly have more specific answers, but I'm curious
>> if book.eResource().getResourceSet() is returning the resource set,
>> i.e., is the book in a resource in a resource set? Are you actually
>> getting a domain back rather than getting a null pointer exception?
>
> Yes, I've checked that the domain is correct after running:
>
> TransactionalEditingDomain domain =
> TransactionUtil.getEditingDomain(book);
> Have you
>> stepped into stack.execute to see what's happening It all looks
>> like it should work.
> I will try this.
>
> This leads me to believe that my command contains an error:
>
> Command cmd = domain.createCommand(SetCommand.class, new
> CommandParameter(book, EditorPackage.BOOK__NAME, "dummy"));
>
> The books name should be set to "dummy";
>
>
> Thanks,
>
> Tomas


Ed Merks
Professional Support: https://www.macromodeling.com/
Re: Simple TransactionalEditingDomain command [message #414094 is a reply to message #414090] Wed, 24 October 2007 14:25 Go to previous messageGo to next message
Ed Merks is currently offline Ed MerksFriend
Messages: 33140
Registered: July 2009
Senior Member
Tomas,

Christian makes a very good point. You are just updating a wrapper
based on some change, but that update doesn't need to be undone. When
the wrapped object's change is undone, you will update the wrapper to
reflect that change. So it sounds to me like you should just set the
name and that's all...


Tomas Zijdemans wrote:
> I see. My listener is not an adapter.
>
> Isn't it logical to run a command when a change is detected? Where else?
>
>
> Thanks,
>
> Tomas
>
>
> Christian W. Damus wrote:
>> Hi, Tomas,
>>
>> I don't think that executing commands in listeners is a good idea. They
>> will end up on the Edit -> Undo menu! Moreover, if your listener is an
>> Adapter that receives a Notification during the execution of a
>> Command, you
>> will have re-entrant command execution. I don't even know whether a
>> command-stack can do that.
>>
>> Cheers,
>>
>> Christian
>>
>>
>> Tomas Zijdemans wrote:
>>
>>> Thanks for helping!
>>>
>>> Let me first explain my case shortly:
>>> My model elements wrap objects in an owl-file, these objects have
>>> listeners attached. When multiple objects (in different instances of
>>> the
>>> editor) wrap the same object, I want to sync them using a command. Ex:
>>> if a book's wrapped object changes name, change the books name. (So the
>>> command must deal with different editing domains)
>>>
>>> Christian W. Damus wrote:
>>
>> -----8<-----


Ed Merks
Professional Support: https://www.macromodeling.com/
Re: Simple TransactionalEditingDomain command [message #414096 is a reply to message #414092] Wed, 24 October 2007 14:34 Go to previous messageGo to next message
Tomas Zijdemans is currently offline Tomas ZijdemansFriend
Messages: 90
Registered: July 2009
Member
Ed Merks wrote:
> Tomas,
>
> Is cmd.canExecute returning true?
No

Have you stepped through the
> execution of the command? I often remind people that the debugger is
> their best friend because it can answer questions more quickly than me
> (and there's only one of me).
I have little experience with the debugger, but I will try to learn it.
So far I have just printed out all values, and I think I've found the
source of my trouble:

TransactionalEditingDomain domain =
TransactionUtil.getEditingDomain(wrappingClass);

domain is:
org.eclipse.gmf.runtime.diagram.core.DiagramEditingDomainFac tory$DiagramEditingDomain@16e3aaf

So it's probably because the editing domain is gmf that things are not
working

The command gives:

SetCommand (label: Set) (description:...) (isPrepared: false)
(isExecutable: false) (domain:...) (overrideCommand: null) (owner:...
(description: null, name: Resource)) (feature: null) (value: r)
(oldValue: null)

, which also reveals that things are not ok.


Regards,

Tomas

>
>
> Tomas Zijdemans wrote:
>> Ed Merks wrote:
>>> Tomas,
>>>
>>> Christian will certainly have more specific answers, but I'm curious
>>> if book.eResource().getResourceSet() is returning the resource set,
>>> i.e., is the book in a resource in a resource set? Are you actually
>>> getting a domain back rather than getting a null pointer exception?
>>
>> Yes, I've checked that the domain is correct after running:
>>
>> TransactionalEditingDomain domain =
>> TransactionUtil.getEditingDomain(book);
>> Have you
>>> stepped into stack.execute to see what's happening It all looks
>>> like it should work.
>> I will try this.
>>
>> This leads me to believe that my command contains an error:
>>
>> Command cmd = domain.createCommand(SetCommand.class, new
>> CommandParameter(book, EditorPackage.BOOK__NAME, "dummy"));
>>
>> The books name should be set to "dummy";
>>
>>
>> Thanks,
>>
>> Tomas
Re: Simple TransactionalEditingDomain command [message #414097 is a reply to message #414094] Wed, 24 October 2007 14:40 Go to previous messageGo to next message
Tomas Zijdemans is currently offline Tomas ZijdemansFriend
Messages: 90
Registered: July 2009
Member
Ed Merks wrote:
> Tomas,
>
> Christian makes a very good point. You are just updating a wrapper
> based on some change, but that update doesn't need to be undone. When
> the wrapped object's change is undone, you will update the wrapper to
> reflect that change. So it sounds to me like you should just set the
> name and that's all...

I wish I could :)

The trouble is when multiple model elements wrap the same object. When
trying to set all elements name, setName() gives an exception:
java.lang.IllegalStateException: Cannot modify resource set without a
write transaction

Regards,

Tomas
Re: Simple TransactionalEditingDomain command [message #414101 is a reply to message #414097] Wed, 24 October 2007 15:02 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: cdamus.ca.ibm.com

Hi, Tomas,

How is it that your wrapper object is changing without a read/write
transaction context, causing you to try to synchronize the wrapped object?
The wrapper should be in the same transactional editing domain as the
wrappee.

In such case, then, you would be able to use the pre-commit listener
(trigger) mechanism to keep wrappees in synch with their wrappers. The
pre-commit listener provides Commands to make further changes in response
to other changes observed during the course of a transaction.

The EMF Transaction Developer Guide in the Eclipse Help viewer has more
information about triggers.

HTH,

Christian


Tomas Zijdemans wrote:

> Ed Merks wrote:
>> Tomas,
>>
>> Christian makes a very good point. You are just updating a wrapper
>> based on some change, but that update doesn't need to be undone. When
>> the wrapped object's change is undone, you will update the wrapper to
>> reflect that change. So it sounds to me like you should just set the
>> name and that's all...
>
> I wish I could :)
>
> The trouble is when multiple model elements wrap the same object. When
> trying to set all elements name, setName() gives an exception:
> java.lang.IllegalStateException: Cannot modify resource set without a
> write transaction
>
> Regards,
>
> Tomas
Re: Simple TransactionalEditingDomain command [message #414110 is a reply to message #414101] Thu, 25 October 2007 08:50 Go to previous messageGo to next message
Tomas Zijdemans is currently offline Tomas ZijdemansFriend
Messages: 90
Registered: July 2009
Member
Thanks again for helping, this issue is quite important for me, and I
hope others can benefit from this as well - now or in the future :)

Comments below:

Christian W. Damus wrote:
> Hi, Tomas,
>
> How is it that your wrapper object is changing without a read/write
> transaction context, causing you to try to synchronize the wrapped object?
> The wrapper should be in the same transactional editing domain as the
> wrappee.
I think maybe I've explained my case poorly.
Background: Two different editors are opened. They offer to create some
different objects, but both can create Book objects. Via user
interaction, books can be set to represent an object in an ontology
(already loaded from an owl-file).

1. In the first editor, the user creates a book: Book1 that wraps an
"owl-book" object.

2. In the second editor, Book2 wraps the same object.

3. The user changes the name of the book in the first editor. The
wrapped object detects a change, and notifies all observing objects
(Book1 and Book2).

4. Book1 receives the request but don't need to call setName (if it
does, everything functions correctly). Book2 receives the request and
calls setName, this results in a transactional error.

> In such case, then, you would be able to use the pre-commit listener
> (trigger) mechanism to keep wrappees in synch with their wrappers. The
> pre-commit listener provides Commands to make further changes in response
> to other changes observed during the course of a transaction.
>
> The EMF Transaction Developer Guide in the Eclipse Help viewer has more
> information about triggers.

Ok, thanks. I'll look at triggers.

Regards,

Tomas
Re: Simple TransactionalEditingDomain command [message #414123 is a reply to message #414110] Thu, 25 October 2007 13:08 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: cdamus.ca.ibm.com

Hi, Tomas,

It sounds like, because you have multiple editors wrapping the same OWL
data, you will be best served by using a single TransactionalEditingDomain.
Moreover, the operation-history-integrated "workspace" editing domains used
by GMF will provide convenient editor-specific undo/redo actions for the
Edit menu, appropriately accounting for interdependencies between your
various resources. With a single editing domain, you may not even need the
complexity of triggers (I suspect that your problem stems from a
transaction in one editor's domain causing notifications that demand
changes in another editing domain in which ther is no transaction active?).

The org.eclipse.emf.workspace.examples.extlibrary.editor plug-in provides an
example of how you can tie multiple editors together in the same editing
domain with semi-independent undo/redo menus.

HTH,

Christian

Tomas Zijdemans wrote:

> Thanks again for helping, this issue is quite important for me, and I
> hope others can benefit from this as well - now or in the future :)
>
> Comments below:
>
> Christian W. Damus wrote:
>> Hi, Tomas,
>>
>> How is it that your wrapper object is changing without a read/write
>> transaction context, causing you to try to synchronize the wrapped
>> object? The wrapper should be in the same transactional editing domain as
>> the wrappee.
> I think maybe I've explained my case poorly.
> Background: Two different editors are opened. They offer to create some
> different objects, but both can create Book objects. Via user
> interaction, books can be set to represent an object in an ontology
> (already loaded from an owl-file).
>
> 1. In the first editor, the user creates a book: Book1 that wraps an
> "owl-book" object.
>
> 2. In the second editor, Book2 wraps the same object.
>
> 3. The user changes the name of the book in the first editor. The
> wrapped object detects a change, and notifies all observing objects
> (Book1 and Book2).
>
> 4. Book1 receives the request but don't need to call setName (if it
> does, everything functions correctly). Book2 receives the request and
> calls setName, this results in a transactional error.
>
>> In such case, then, you would be able to use the pre-commit listener
>> (trigger) mechanism to keep wrappees in synch with their wrappers. The
>> pre-commit listener provides Commands to make further changes in response
>> to other changes observed during the course of a transaction.
>>
>> The EMF Transaction Developer Guide in the Eclipse Help viewer has more
>> information about triggers.
>
> Ok, thanks. I'll look at triggers.
>
> Regards,
>
> Tomas
Re: Simple TransactionalEditingDomain command [message #414125 is a reply to message #414123] Thu, 25 October 2007 14:05 Go to previous messageGo to next message
Tomas Zijdemans is currently offline Tomas ZijdemansFriend
Messages: 90
Registered: July 2009
Member
Christian W. Damus wrote:
> Hi, Tomas,
>
> It sounds like, because you have multiple editors wrapping the same OWL
> data, you will be best served by using a single TransactionalEditingDomain.
> Moreover, the operation-history-integrated "workspace" editing domains used
> by GMF will provide convenient editor-specific undo/redo actions for the
> Edit menu, appropriately accounting for interdependencies between your
> various resources. With a single editing domain, you may not even need the
> complexity of triggers (I suspect that your problem stems from a
> transaction in one editor's domain causing notifications that demand
> changes in another editing domain in which ther is no transaction active?).
This seems to be the case, yes. (Wow! You're like Dr. House...).
>
> The org.eclipse.emf.workspace.examples.extlibrary.editor plug-in provides an
> example of how you can tie multiple editors together in the same editing
> domain with semi-independent undo/redo menus.
There are some nice tutorials regarding this, so I'll try it out.

Thanks again for helping!

Tomas
Re: Simple TransactionalEditingDomain command [message #414132 is a reply to message #414125] Thu, 25 October 2007 15:14 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: cdamus.ca.ibm.com

Hi, Tomas,

I'm glad if this is helping you.

Say, who is Dr. House? I remember a Dr. Who from my childhood ... would he
be any relation?

cW

Tomas Zijdemans wrote:

> Christian W. Damus wrote:
>> Hi, Tomas,
>>
>> It sounds like, because you have multiple editors wrapping the same OWL
>> data, you will be best served by using a single
>> TransactionalEditingDomain. Moreover, the operation-history-integrated
>> "workspace" editing domains used by GMF will provide convenient
>> editor-specific undo/redo actions for the Edit menu, appropriately
>> accounting for interdependencies between your
>> various resources. With a single editing domain, you may not even need
>> the complexity of triggers (I suspect that your problem stems from a
>> transaction in one editor's domain causing notifications that demand
>> changes in another editing domain in which ther is no transaction
>> active?).
> This seems to be the case, yes. (Wow! You're like Dr. House...).
>>
>> The org.eclipse.emf.workspace.examples.extlibrary.editor plug-in provides
>> an example of how you can tie multiple editors together in the same
>> editing domain with semi-independent undo/redo menus.
> There are some nice tutorials regarding this, so I'll try it out.
>
> Thanks again for helping!
>
> Tomas
Re: Simple TransactionalEditingDomain command [message #414140 is a reply to message #414132] Thu, 25 October 2007 18:28 Go to previous message
Tomas Zijdemans is currently offline Tomas ZijdemansFriend
Messages: 90
Registered: July 2009
Member
Christian W. Damus wrote:
> Hi, Tomas,
>
> I'm glad if this is helping you.
>
> Say, who is Dr. House? I remember a Dr. Who from my childhood ... would he
> be any relation?
>

Hehe.

http://imdb.com/title/tt0412142/

He's one of the worlds best diagnosticians in this TV show.
Previous Topic:Validating additions to a list
Next Topic:Instantiating Ecore model from Strings
Goto Forum:
  


Current Time: Thu Apr 25 10:51:49 GMT 2024

Powered by FUDForum. Page generated in 0.04919 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top