Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » EMF » Complex databindings
Complex databindings [message #674358] Thu, 26 May 2011 15:46 Go to next message
flobo2000 is currently offline flobo2000Friend
Messages: 1
Registered: May 2011
Junior Member
Hi there,

I'm relatively new to EMF apologies if this is a trivial problem and the solution is so obvious that I SHOULD have known it by myself.

Anyways here goes: my editor uses an EMF data model and I really like the idea of having JFace Viewers automatically synchronized with the model. The same applies for primitive SWT widgets which are not wrapped by JFace Viewers. So I got interested in EMF databindings. As WindowBuilder also supports this kind of binding, the first steps were smooth and I was really excited to see how it all just worked Smile

However, I am searching for a solution to a problem related to databindings which is a little more complex than just mapping an EMF property to a SWT Text widget... The model looks like this:

I have an EMF Object Type A (lets call it parent) which has three ELists (maleChildren, femaleChildren, neutralChildren) containing objects of another type (Object Type B... let's call it child here). The piece of information I want to display at the UI (and potentially make editable in the future) is a mapped String which represents the EList the child is contained in (eg. display "Male Child" if its contained in the maleChildren Elist, "Female Child" if its contained in the femaleChildren Elist, and so on).

I've been reading here, that I need an IEMFListProperty to get the IObservableList for each of the ELists (see here: hxxp://tomsondev.bestsolution.at/2009/06/07/galileo-emf-databinding-part-2/). However, I don't really see how I can create a databinding with represents this containment-relationship of one child within three ELists...
I could create a databinding between the ELists and one of the properties of the specific child present but that's not what I want.
I'd like to create a binding between the ELists and the Child itself. Trying to directly set up a binding between each of the Elists and the Text Widget doesn't seem to be an option aswell. Within any potential validators or the converter of the databinding, I don't have the context of the binding (which is the child itself) so I can't decide weather or not it is contained inside the EList bound.

Any idea how to solve this using databindings?! Creating the mapped String manually is no big deal (from an initial implementation point of view). However model changes won't be reflected automatically and I'd need to manually refresh the SWT Text at the appropriate point in time (which can get really messy once Undo/Redo works fine). So the goal really is to realize this with EMF databindings. Any help is welcome. Thanks already.
Re: Complex databindings [message #687068 is a reply to message #674358] Thu, 26 May 2011 17:09 Go to previous messageGo to next message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6651
Registered: July 2009
Senior Member
Hi,

I've now read the post 3 times and don't really get what you are trying
to display. All I got is that you have a model like this:

ObjectA
+ maleChildren: List<ObjectB>
+ femaleChildren: List<ObjectB>
+ neutralChildren: List<ObjectB>

And now you want to do what? If you could show me a mock up of your gui
I can probably better understand what you are trying to do.

BTW: WindowBuilder is using the old Observable-API and you should use
the new IProperty-API.

Tom


Am 26.05.11 17:46, schrieb forums-noreply@eclipse.org:
> Hi there,
>
> I'm relatively new to EMF apologies if this is a trivial problem and the
> solution is so obvious that I SHOULD have known it by myself.
>
> Anyways here goes: my editor uses an EMF data model and I really like
> the idea of having JFace Viewers automatically synchronized with the
> model. The same applies for primitive SWT widgets which are not wrapped
> by JFace Viewers. So I got interested in EMF databindings. As
> WindowBuilder also supports this kind of binding, the first steps were
> smooth and I was really excited to see how it all just worked :)
>
> However, I am searching for a solution to a problem related to
> databindings which is a little more complex than just mapping an EMF
> property to a SWT Text widget... The model looks like this:
>
> I have an EMF Object Type A (lets call it parent) which has three ELists
> (maleChildren, femaleChildren, neutralChildren) containing objects of
> another type (Object Type B... let's call it child here). The piece of
> information I want to display at the UI (and potentially make editable
> in the future) is a mapped String which represents the EList the child
> is contained in (eg. display "Male Child" if its contained in the
> maleChildren Elist, "Female Child" if its contained in the
> femaleChildren Elist, and so on).
>
> I've been reading here, that I need an IEMFListProperty to get the
> IObservableList for each of the ELists (see here:
> hxxp://tomsondev.bestsolution.at/2009/06/07/galileo-emf-databinding-part-2/).
> However, I don't really see how I can create a databinding with
> represents this containment-relationship of one child within three
> ELists...
> I could create a databinding between the ELists and one of the
> properties of the specific child present but that's not what I want.
> I'd like to create a binding between the ELists and the Child itself.
> Trying to directly set up a binding between each of the Elists and the
> Text Widget doesn't seem to be an option aswell. Within any potential
> validators or the converter of the databinding, I don't have the context
> of the binding (which is the child itself) so I can't decide weather or
> not it is contained inside the EList bound.
>
> Any idea how to solve this using databindings?! Creating the mapped
> String manually is no big deal (from an initial implementation point of
> view). However model changes won't be reflected automatically and I'd
> need to manually refresh the SWT Text at the appropriate point in time
> (which can get really messy once Undo/Redo works fine). So the goal
> really is to realize this with EMF databindings. Any help is welcome.
> Thanks already.
Re: Complex databindings [message #687077 is a reply to message #687068] Fri, 27 May 2011 07:20 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: Koen Yskout

Tom,

I understand that the intent is to have something with the following
effect (when displaying a child):

Label theTypeLabel = ...
ObjectB theChild = ...
ObjectA parent = theChild.getParent();

if (parent.getMaleChildren().contains(theChild)) {
theTypeLabel.setText("Male child")
} else if (parent.getFemaleChildren().contains(theChild)) {
theTypeLabel.setText("Female child")
} else {
theTypeLabel.setText("Neutral child")
}

and keep this label updated whenever theChild is moved from the neutral
list to the male list, to the female list etc.


Unfortunately, I also do not know how to solve it :(

Koen

On 26/05/11 19:09, Tom Schindl wrote:
> Hi,
>
> I've now read the post 3 times and don't really get what you are trying
> to display. All I got is that you have a model like this:
>
> ObjectA
> + maleChildren: List<ObjectB>
> + femaleChildren: List<ObjectB>
> + neutralChildren: List<ObjectB>
>
> And now you want to do what? If you could show me a mock up of your gui
> I can probably better understand what you are trying to do.
>
> BTW: WindowBuilder is using the old Observable-API and you should use
> the new IProperty-API.
>
> Tom
>
>
> Am 26.05.11 17:46, schrieb forums-noreply@eclipse.org:
>> Hi there,
>>
>> I'm relatively new to EMF apologies if this is a trivial problem and the
>> solution is so obvious that I SHOULD have known it by myself.
>>
>> Anyways here goes: my editor uses an EMF data model and I really like
>> the idea of having JFace Viewers automatically synchronized with the
>> model. The same applies for primitive SWT widgets which are not wrapped
>> by JFace Viewers. So I got interested in EMF databindings. As
>> WindowBuilder also supports this kind of binding, the first steps were
>> smooth and I was really excited to see how it all just worked :)
>>
>> However, I am searching for a solution to a problem related to
>> databindings which is a little more complex than just mapping an EMF
>> property to a SWT Text widget... The model looks like this:
>>
>> I have an EMF Object Type A (lets call it parent) which has three ELists
>> (maleChildren, femaleChildren, neutralChildren) containing objects of
>> another type (Object Type B... let's call it child here). The piece of
>> information I want to display at the UI (and potentially make editable
>> in the future) is a mapped String which represents the EList the child
>> is contained in (eg. display "Male Child" if its contained in the
>> maleChildren Elist, "Female Child" if its contained in the
>> femaleChildren Elist, and so on).
>>
>> I've been reading here, that I need an IEMFListProperty to get the
>> IObservableList for each of the ELists (see here:
>> hxxp://tomsondev.bestsolution.at/2009/06/07/galileo-emf-databinding-part-2/).
>> However, I don't really see how I can create a databinding with
>> represents this containment-relationship of one child within three
>> ELists...
>> I could create a databinding between the ELists and one of the
>> properties of the specific child present but that's not what I want.
>> I'd like to create a binding between the ELists and the Child itself.
>> Trying to directly set up a binding between each of the Elists and the
>> Text Widget doesn't seem to be an option aswell. Within any potential
>> validators or the converter of the databinding, I don't have the context
>> of the binding (which is the child itself) so I can't decide weather or
>> not it is contained inside the EList bound.
>>
>> Any idea how to solve this using databindings?! Creating the mapped
>> String manually is no big deal (from an initial implementation point of
>> view). However model changes won't be reflected automatically and I'd
>> need to manually refresh the SWT Text at the appropriate point in time
>> (which can get really messy once Undo/Redo works fine). So the goal
>> really is to realize this with EMF databindings. Any help is welcome.
>> Thanks already.
>
Re: Complex databindings [message #687084 is a reply to message #687077] Fri, 27 May 2011 18:49 Go to previous message
Christophe Bouhier is currently offline Christophe BouhierFriend
Messages: 937
Registered: July 2009
Senior Member
Just my two, cent's but won't a customized label provider do the trick?
From the child, calling eContainer or eContainmentFeature?

class xxxObservableMapLabelProvider extends ObservableMapLabelProvider{

public CommitObservableMapLabelProvider(IObservableMap[] attributeMaps) {
super(attributeMaps);
}

public CommitObservableMapLabelProvider(IObservableMap attributeMap) {
super(attributeMap);
}

@Override
public String getText(Object element) {
// Here you could do, a switch on:
((EObject)element).eContainmentFeature();

return super.getText(element);
}

@Override
public String getColumnText(Object element, int columnIndex) {
return super.getColumnText(element, columnIndex);
}
}



On 27-05-11 09:20, Koen Yskout wrote:
> Tom,
>
> I understand that the intent is to have something with the following
> effect (when displaying a child):
>
> Label theTypeLabel = ...
> ObjectB theChild = ...
> ObjectA parent = theChild.getParent();
>
> if (parent.getMaleChildren().contains(theChild)) {
> theTypeLabel.setText("Male child")
> } else if (parent.getFemaleChildren().contains(theChild)) {
> theTypeLabel.setText("Female child")
> } else {
> theTypeLabel.setText("Neutral child")
> }
>
> and keep this label updated whenever theChild is moved from the neutral
> list to the male list, to the female list etc.
>
>
> Unfortunately, I also do not know how to solve it :(
>
> Koen
>
> On 26/05/11 19:09, Tom Schindl wrote:
>> Hi,
>>
>> I've now read the post 3 times and don't really get what you are trying
>> to display. All I got is that you have a model like this:
>>
>> ObjectA
>> + maleChildren: List<ObjectB>
>> + femaleChildren: List<ObjectB>
>> + neutralChildren: List<ObjectB>
>>
>> And now you want to do what? If you could show me a mock up of your gui
>> I can probably better understand what you are trying to do.
>>
>> BTW: WindowBuilder is using the old Observable-API and you should use
>> the new IProperty-API.
>>
>> Tom
>>
>>
>> Am 26.05.11 17:46, schrieb forums-noreply@eclipse.org:
>>> Hi there,
>>>
>>> I'm relatively new to EMF apologies if this is a trivial problem and the
>>> solution is so obvious that I SHOULD have known it by myself.
>>>
>>> Anyways here goes: my editor uses an EMF data model and I really like
>>> the idea of having JFace Viewers automatically synchronized with the
>>> model. The same applies for primitive SWT widgets which are not wrapped
>>> by JFace Viewers. So I got interested in EMF databindings. As
>>> WindowBuilder also supports this kind of binding, the first steps were
>>> smooth and I was really excited to see how it all just worked :)
>>>
>>> However, I am searching for a solution to a problem related to
>>> databindings which is a little more complex than just mapping an EMF
>>> property to a SWT Text widget... The model looks like this:
>>>
>>> I have an EMF Object Type A (lets call it parent) which has three ELists
>>> (maleChildren, femaleChildren, neutralChildren) containing objects of
>>> another type (Object Type B... let's call it child here). The piece of
>>> information I want to display at the UI (and potentially make editable
>>> in the future) is a mapped String which represents the EList the child
>>> is contained in (eg. display "Male Child" if its contained in the
>>> maleChildren Elist, "Female Child" if its contained in the
>>> femaleChildren Elist, and so on).
>>>
>>> I've been reading here, that I need an IEMFListProperty to get the
>>> IObservableList for each of the ELists (see here:
>>> hxxp://tomsondev.bestsolution.at/2009/06/07/galileo-emf-databinding-part-2/).
>>> However, I don't really see how I can create a databinding with
>>> represents this containment-relationship of one child within three
>>> ELists...
>>> I could create a databinding between the ELists and one of the
>>> properties of the specific child present but that's not what I want.
>>> I'd like to create a binding between the ELists and the Child itself.
>>> Trying to directly set up a binding between each of the Elists and the
>>> Text Widget doesn't seem to be an option aswell. Within any potential
>>> validators or the converter of the databinding, I don't have the context
>>> of the binding (which is the child itself) so I can't decide weather or
>>> not it is contained inside the EList bound.
>>>
>>> Any idea how to solve this using databindings?! Creating the mapped
>>> String manually is no big deal (from an initial implementation point of
>>> view). However model changes won't be reflected automatically and I'd
>>> need to manually refresh the SWT Text at the appropriate point in time
>>> (which can get really messy once Undo/Redo works fine). So the goal
>>> really is to realize this with EMF databindings. Any help is welcome.
>>> Thanks already.
>>
>
Re: Complex databindings [message #687277 is a reply to message #674358] Thu, 26 May 2011 17:09 Go to previous message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6651
Registered: July 2009
Senior Member
Hi,

I've now read the post 3 times and don't really get what you are trying
to display. All I got is that you have a model like this:

ObjectA
+ maleChildren: List<ObjectB>
+ femaleChildren: List<ObjectB>
+ neutralChildren: List<ObjectB>

And now you want to do what? If you could show me a mock up of your gui
I can probably better understand what you are trying to do.

BTW: WindowBuilder is using the old Observable-API and you should use
the new IProperty-API.

Tom


Am 26.05.11 17:46, schrieb forums-noreply@eclipse.org:
> Hi there,
>
> I'm relatively new to EMF apologies if this is a trivial problem and the
> solution is so obvious that I SHOULD have known it by myself.
>
> Anyways here goes: my editor uses an EMF data model and I really like
> the idea of having JFace Viewers automatically synchronized with the
> model. The same applies for primitive SWT widgets which are not wrapped
> by JFace Viewers. So I got interested in EMF databindings. As
> WindowBuilder also supports this kind of binding, the first steps were
> smooth and I was really excited to see how it all just worked :)
>
> However, I am searching for a solution to a problem related to
> databindings which is a little more complex than just mapping an EMF
> property to a SWT Text widget... The model looks like this:
>
> I have an EMF Object Type A (lets call it parent) which has three ELists
> (maleChildren, femaleChildren, neutralChildren) containing objects of
> another type (Object Type B... let's call it child here). The piece of
> information I want to display at the UI (and potentially make editable
> in the future) is a mapped String which represents the EList the child
> is contained in (eg. display "Male Child" if its contained in the
> maleChildren Elist, "Female Child" if its contained in the
> femaleChildren Elist, and so on).
>
> I've been reading here, that I need an IEMFListProperty to get the
> IObservableList for each of the ELists (see here:
> hxxp://tomsondev.bestsolution.at/2009/06/07/galileo-emf-databinding-part-2/).
> However, I don't really see how I can create a databinding with
> represents this containment-relationship of one child within three
> ELists...
> I could create a databinding between the ELists and one of the
> properties of the specific child present but that's not what I want.
> I'd like to create a binding between the ELists and the Child itself.
> Trying to directly set up a binding between each of the Elists and the
> Text Widget doesn't seem to be an option aswell. Within any potential
> validators or the converter of the databinding, I don't have the context
> of the binding (which is the child itself) so I can't decide weather or
> not it is contained inside the EList bound.
>
> Any idea how to solve this using databindings?! Creating the mapped
> String manually is no big deal (from an initial implementation point of
> view). However model changes won't be reflected automatically and I'd
> need to manually refresh the SWT Text at the appropriate point in time
> (which can get really messy once Undo/Redo works fine). So the goal
> really is to realize this with EMF databindings. Any help is welcome.
> Thanks already.
Re: Complex databindings [message #687287 is a reply to message #687068] Fri, 27 May 2011 07:20 Go to previous message
Eclipse UserFriend
Originally posted by: Koen Yskout

Tom,

I understand that the intent is to have something with the following
effect (when displaying a child):

Label theTypeLabel = ...
ObjectB theChild = ...
ObjectA parent = theChild.getParent();

if (parent.getMaleChildren().contains(theChild)) {
theTypeLabel.setText("Male child")
} else if (parent.getFemaleChildren().contains(theChild)) {
theTypeLabel.setText("Female child")
} else {
theTypeLabel.setText("Neutral child")
}

and keep this label updated whenever theChild is moved from the neutral
list to the male list, to the female list etc.


Unfortunately, I also do not know how to solve it :(

Koen

On 26/05/11 19:09, Tom Schindl wrote:
> Hi,
>
> I've now read the post 3 times and don't really get what you are trying
> to display. All I got is that you have a model like this:
>
> ObjectA
> + maleChildren: List<ObjectB>
> + femaleChildren: List<ObjectB>
> + neutralChildren: List<ObjectB>
>
> And now you want to do what? If you could show me a mock up of your gui
> I can probably better understand what you are trying to do.
>
> BTW: WindowBuilder is using the old Observable-API and you should use
> the new IProperty-API.
>
> Tom
>
>
> Am 26.05.11 17:46, schrieb forums-noreply@eclipse.org:
>> Hi there,
>>
>> I'm relatively new to EMF apologies if this is a trivial problem and the
>> solution is so obvious that I SHOULD have known it by myself.
>>
>> Anyways here goes: my editor uses an EMF data model and I really like
>> the idea of having JFace Viewers automatically synchronized with the
>> model. The same applies for primitive SWT widgets which are not wrapped
>> by JFace Viewers. So I got interested in EMF databindings. As
>> WindowBuilder also supports this kind of binding, the first steps were
>> smooth and I was really excited to see how it all just worked :)
>>
>> However, I am searching for a solution to a problem related to
>> databindings which is a little more complex than just mapping an EMF
>> property to a SWT Text widget... The model looks like this:
>>
>> I have an EMF Object Type A (lets call it parent) which has three ELists
>> (maleChildren, femaleChildren, neutralChildren) containing objects of
>> another type (Object Type B... let's call it child here). The piece of
>> information I want to display at the UI (and potentially make editable
>> in the future) is a mapped String which represents the EList the child
>> is contained in (eg. display "Male Child" if its contained in the
>> maleChildren Elist, "Female Child" if its contained in the
>> femaleChildren Elist, and so on).
>>
>> I've been reading here, that I need an IEMFListProperty to get the
>> IObservableList for each of the ELists (see here:
>> hxxp://tomsondev.bestsolution.at/2009/06/07/galileo-emf-databinding-part-2/).
>> However, I don't really see how I can create a databinding with
>> represents this containment-relationship of one child within three
>> ELists...
>> I could create a databinding between the ELists and one of the
>> properties of the specific child present but that's not what I want.
>> I'd like to create a binding between the ELists and the Child itself.
>> Trying to directly set up a binding between each of the Elists and the
>> Text Widget doesn't seem to be an option aswell. Within any potential
>> validators or the converter of the databinding, I don't have the context
>> of the binding (which is the child itself) so I can't decide weather or
>> not it is contained inside the EList bound.
>>
>> Any idea how to solve this using databindings?! Creating the mapped
>> String manually is no big deal (from an initial implementation point of
>> view). However model changes won't be reflected automatically and I'd
>> need to manually refresh the SWT Text at the appropriate point in time
>> (which can get really messy once Undo/Redo works fine). So the goal
>> really is to realize this with EMF databindings. Any help is welcome.
>> Thanks already.
>
Re: Complex databindings [message #687300 is a reply to message #687077] Fri, 27 May 2011 18:49 Go to previous message
Christophe Bouhier is currently offline Christophe BouhierFriend
Messages: 937
Registered: July 2009
Senior Member
Just my two, cent's but won't a customized label provider do the trick?
From the child, calling eContainer or eContainmentFeature?

class xxxObservableMapLabelProvider extends ObservableMapLabelProvider{

public CommitObservableMapLabelProvider(IObservableMap[] attributeMaps) {
super(attributeMaps);
}

public CommitObservableMapLabelProvider(IObservableMap attributeMap) {
super(attributeMap);
}

@Override
public String getText(Object element) {
// Here you could do, a switch on:
((EObject)element).eContainmentFeature();

return super.getText(element);
}

@Override
public String getColumnText(Object element, int columnIndex) {
return super.getColumnText(element, columnIndex);
}
}



On 27-05-11 09:20, Koen Yskout wrote:
> Tom,
>
> I understand that the intent is to have something with the following
> effect (when displaying a child):
>
> Label theTypeLabel = ...
> ObjectB theChild = ...
> ObjectA parent = theChild.getParent();
>
> if (parent.getMaleChildren().contains(theChild)) {
> theTypeLabel.setText("Male child")
> } else if (parent.getFemaleChildren().contains(theChild)) {
> theTypeLabel.setText("Female child")
> } else {
> theTypeLabel.setText("Neutral child")
> }
>
> and keep this label updated whenever theChild is moved from the neutral
> list to the male list, to the female list etc.
>
>
> Unfortunately, I also do not know how to solve it :(
>
> Koen
>
> On 26/05/11 19:09, Tom Schindl wrote:
>> Hi,
>>
>> I've now read the post 3 times and don't really get what you are trying
>> to display. All I got is that you have a model like this:
>>
>> ObjectA
>> + maleChildren: List<ObjectB>
>> + femaleChildren: List<ObjectB>
>> + neutralChildren: List<ObjectB>
>>
>> And now you want to do what? If you could show me a mock up of your gui
>> I can probably better understand what you are trying to do.
>>
>> BTW: WindowBuilder is using the old Observable-API and you should use
>> the new IProperty-API.
>>
>> Tom
>>
>>
>> Am 26.05.11 17:46, schrieb forums-noreply@eclipse.org:
>>> Hi there,
>>>
>>> I'm relatively new to EMF apologies if this is a trivial problem and the
>>> solution is so obvious that I SHOULD have known it by myself.
>>>
>>> Anyways here goes: my editor uses an EMF data model and I really like
>>> the idea of having JFace Viewers automatically synchronized with the
>>> model. The same applies for primitive SWT widgets which are not wrapped
>>> by JFace Viewers. So I got interested in EMF databindings. As
>>> WindowBuilder also supports this kind of binding, the first steps were
>>> smooth and I was really excited to see how it all just worked :)
>>>
>>> However, I am searching for a solution to a problem related to
>>> databindings which is a little more complex than just mapping an EMF
>>> property to a SWT Text widget... The model looks like this:
>>>
>>> I have an EMF Object Type A (lets call it parent) which has three ELists
>>> (maleChildren, femaleChildren, neutralChildren) containing objects of
>>> another type (Object Type B... let's call it child here). The piece of
>>> information I want to display at the UI (and potentially make editable
>>> in the future) is a mapped String which represents the EList the child
>>> is contained in (eg. display "Male Child" if its contained in the
>>> maleChildren Elist, "Female Child" if its contained in the
>>> femaleChildren Elist, and so on).
>>>
>>> I've been reading here, that I need an IEMFListProperty to get the
>>> IObservableList for each of the ELists (see here:
>>> hxxp://tomsondev.bestsolution.at/2009/06/07/galileo-emf-databinding-part-2/).
>>> However, I don't really see how I can create a databinding with
>>> represents this containment-relationship of one child within three
>>> ELists...
>>> I could create a databinding between the ELists and one of the
>>> properties of the specific child present but that's not what I want.
>>> I'd like to create a binding between the ELists and the Child itself.
>>> Trying to directly set up a binding between each of the Elists and the
>>> Text Widget doesn't seem to be an option aswell. Within any potential
>>> validators or the converter of the databinding, I don't have the context
>>> of the binding (which is the child itself) so I can't decide weather or
>>> not it is contained inside the EList bound.
>>>
>>> Any idea how to solve this using databindings?! Creating the mapped
>>> String manually is no big deal (from an initial implementation point of
>>> view). However model changes won't be reflected automatically and I'd
>>> need to manually refresh the SWT Text at the appropriate point in time
>>> (which can get really messy once Undo/Redo works fine). So the goal
>>> really is to realize this with EMF databindings. Any help is welcome.
>>> Thanks already.
>>
>
Previous Topic:(no subject)
Next Topic:(no subject)
Goto Forum:
  


Current Time: Thu Mar 28 21:39:58 GMT 2024

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

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

Back to the top