Home » Modeling » EMF » [EMF Databinding] ObservableMapContentProvider - How to provide a map for a list feature
[EMF Databinding] ObservableMapContentProvider - How to provide a map for a list feature [message #534085] |
Mon, 17 May 2010 22:15 |
Eclipse User |
|
|
|
Originally posted by: Thomas.Kowatsch.ruag.com
Hi all.
I have a problem with providing an IObservableMap for a list feature.
My viewer needs to update the label when a list of a displayed entry
changes.
The label font will be italic if the list is not empty and normal if the
list is empty.
How can I create an IObservableMap to pass as attribute Map to the
ObservableMapLabelProvider on creation?
For a value property I can do:
EMFProperties.value(FooPackage.Literals.FOO__FOO_VALUE)
.observeDetail(ObservableListContentProvider.getKnownElement s())
But what to do for a list property, e.g. FooPackage.Literals.FOO_FOO_LIST?
If there is no possibility to create a map for that, how can I trigger a
label update when the list of any displayed foo item changes?
Cheers.
--Thomas
|
|
| |
Re: [EMF Databinding] ObservableMapContentProvider - How to provide a map for a list feature [message #534634 is a reply to message #534606] |
Wed, 19 May 2010 16:51 |
Eclipse User |
|
|
|
Originally posted by: Thomas.Kowatsch.ruag.com
Hi Tom.
Sorry for confusion.
I ment that the label font of my tree entry is dependend of a list
feature of the entry.
It is more or less the same problem you have in your "Project
Administration" example application. The label of the viewer in the
ProjectExplorerPart displays the number committers in square brackets.
You pass to the ObservabelMapLAbelProvider the following maps:
IObservableMap[] map = new IObservableMap [4];
map[0] =
EMFProperties.value(ProjectPackage.Literals.PROJECT__SHORTNA ME).observeDetail(set);
map[1] =
EMFProperties.value(ProjectPackage.Literals.PROJECT__COMMITT ERS).observeDetail(set);
map[2] = EMFProperties.value(
FeaturePath.fromList(ProjectPackage.Literals.COMMITTER_SHIP_ _PERSON,
ProjectPackage.Literals.PERSON__FIRSTNAME)).observeDetail(se t);
map[3] = EMFProperties.value(
FeaturePath.fromList(ProjectPackage.Literals.COMMITTER_SHIP_ _PERSON,
ProjectPackage.Literals.PERSON__LASTNAME)).observeDetail(set );
The PROJECT__COMMITTERS is a list feature, but you create a value
property from it. I guess the intention is to trigger a label update
when a committer is added. But this does not work! The label provider
does not get a LabelProviderChangedEvent when you add a committer, the
number of committers in the square brackets stay the same after you have
added a committer. only when the name is edited for example, the number
of committers is updated, as the label provider is triggered with the
PROJECT__SHORTNAME map.
So I guessed that the problem is because you use a value property for
the list feature.
I hope makes the problem a bit easier to understand.
Cheers.
--Thomas
Tom Schindl schrieb:
> Hi Thomas,
>
> Can you give me a complete example I'm not sure I completely got your
> use case. Do you mean the content of a cell in your table is made up
> from a List instead of a/mulitple Single-Valued feature(s)?
>
> Tom
>
> Am 18.05.10 00:15, schrieb Thomas Kowatsch:
>> Hi all.
>>
>> I have a problem with providing an IObservableMap for a list feature.
>>
>> My viewer needs to update the label when a list of a displayed entry
>> changes.
>> The label font will be italic if the list is not empty and normal if the
>> list is empty.
>>
>> How can I create an IObservableMap to pass as attribute Map to the
>> ObservableMapLabelProvider on creation?
>>
>> For a value property I can do:
>> EMFProperties.value(FooPackage.Literals.FOO__FOO_VALUE)
>> .observeDetail(ObservableListContentProvider.getKnownElement s())
>>
>> But what to do for a list property, e.g. FooPackage.Literals.FOO_FOO_LIST?
>>
>> If there is no possibility to create a map for that, how can I trigger a
>> label update when the list of any displayed foo item changes?
>>
>> Cheers.
>> --Thomas
>
|
|
|
Re: [EMF Databinding] ObservableMapContentProvider - How to provide a map for a list feature [message #534653 is a reply to message #534634] |
Wed, 19 May 2010 17:54 |
Thomas Schindl Messages: 6651 Registered: July 2009 |
Senior Member |
|
|
Hi,
Ok. This make sense, I know that this thing is not working but I had no
time to fix it. I'll take a look how I can fix this in my example and
then you can probably copy it :-)
I guess what we'd need is a ValueProperty to observe the size of a List
which shouldn't be too hard to implement.
Tom
Am 19.05.10 18:51, schrieb Thomas Kowatsch:
> Hi Tom.
> Sorry for confusion.
> I ment that the label font of my tree entry is dependend of a list
> feature of the entry.
> It is more or less the same problem you have in your "Project
> Administration" example application. The label of the viewer in the
> ProjectExplorerPart displays the number committers in square brackets.
> You pass to the ObservabelMapLAbelProvider the following maps:
>
> IObservableMap[] map = new IObservableMap [4];
> map[0] =
> EMFProperties.value(ProjectPackage.Literals.PROJECT__SHORTNA ME).observeDetail(set);
>
> map[1] =
> EMFProperties.value(ProjectPackage.Literals.PROJECT__COMMITT ERS).observeDetail(set);
>
> map[2] = EMFProperties.value(
>
> FeaturePath.fromList(ProjectPackage.Literals.COMMITTER_SHIP_ _PERSON,
> ProjectPackage.Literals.PERSON__FIRSTNAME)).observeDetail(se t);
> map[3] = EMFProperties.value(
>
> FeaturePath.fromList(ProjectPackage.Literals.COMMITTER_SHIP_ _PERSON,
> ProjectPackage.Literals.PERSON__LASTNAME)).observeDetail(set );
>
> The PROJECT__COMMITTERS is a list feature, but you create a value
> property from it. I guess the intention is to trigger a label update
> when a committer is added. But this does not work! The label provider
> does not get a LabelProviderChangedEvent when you add a committer, the
> number of committers in the square brackets stay the same after you have
> added a committer. only when the name is edited for example, the number
> of committers is updated, as the label provider is triggered with the
> PROJECT__SHORTNAME map.
>
> So I guessed that the problem is because you use a value property for
> the list feature.
>
> I hope makes the problem a bit easier to understand.
>
> Cheers.
> --Thomas
>
> Tom Schindl schrieb:
>> Hi Thomas,
>>
>> Can you give me a complete example I'm not sure I completely got your
>> use case. Do you mean the content of a cell in your table is made up
>> from a List instead of a/mulitple Single-Valued feature(s)?
>>
>> Tom
>>
>> Am 18.05.10 00:15, schrieb Thomas Kowatsch:
>>> Hi all.
>>>
>>> I have a problem with providing an IObservableMap for a list feature.
>>>
>>> My viewer needs to update the label when a list of a displayed entry
>>> changes.
>>> The label font will be italic if the list is not empty and normal if the
>>> list is empty.
>>>
>>> How can I create an IObservableMap to pass as attribute Map to the
>>> ObservableMapLabelProvider on creation?
>>>
>>> For a value property I can do:
>>> EMFProperties.value(FooPackage.Literals.FOO__FOO_VALUE)
>>> .observeDetail(ObservableListContentProvider.getKnownElement s())
>>>
>>> But what to do for a list property, e.g.
>>> FooPackage.Literals.FOO_FOO_LIST?
>>>
>>> If there is no possibility to create a map for that, how can I trigger a
>>> label update when the list of any displayed foo item changes?
>>>
>>> Cheers.
>>> --Thomas
>>
|
|
|
Re: [EMF Databinding] ObservableMapContentProvider - How to provide a map for a list feature [message #534654 is a reply to message #534653] |
Wed, 19 May 2010 18:05 |
Eclipse User |
|
|
|
Originally posted by: Thomas.Kowatsch.ruag.com
Tom Schindl schrieb:
> Hi,
>
> Ok. This make sense, I know that this thing is not working but I had no
> time to fix it. I'll take a look how I can fix this in my example and
> then you can probably copy it :-)
cool :-)
>
> I guess what we'd need is a ValueProperty to observe the size of a List
> which shouldn't be too hard to implement.
sounds good :-)
TIA
>
> Tom
>
> Am 19.05.10 18:51, schrieb Thomas Kowatsch:
>> Hi Tom.
>> Sorry for confusion.
>> I ment that the label font of my tree entry is dependend of a list
>> feature of the entry.
>> It is more or less the same problem you have in your "Project
>> Administration" example application. The label of the viewer in the
>> ProjectExplorerPart displays the number committers in square brackets.
>> You pass to the ObservabelMapLAbelProvider the following maps:
>>
>> IObservableMap[] map = new IObservableMap [4];
>> map[0] =
>> EMFProperties.value(ProjectPackage.Literals.PROJECT__SHORTNA ME).observeDetail(set);
>>
>> map[1] =
>> EMFProperties.value(ProjectPackage.Literals.PROJECT__COMMITT ERS).observeDetail(set);
>>
>> map[2] = EMFProperties.value(
>>
>> FeaturePath.fromList(ProjectPackage.Literals.COMMITTER_SHIP_ _PERSON,
>> ProjectPackage.Literals.PERSON__FIRSTNAME)).observeDetail(se t);
>> map[3] = EMFProperties.value(
>>
>> FeaturePath.fromList(ProjectPackage.Literals.COMMITTER_SHIP_ _PERSON,
>> ProjectPackage.Literals.PERSON__LASTNAME)).observeDetail(set );
>>
>> The PROJECT__COMMITTERS is a list feature, but you create a value
>> property from it. I guess the intention is to trigger a label update
>> when a committer is added. But this does not work! The label provider
>> does not get a LabelProviderChangedEvent when you add a committer, the
>> number of committers in the square brackets stay the same after you have
>> added a committer. only when the name is edited for example, the number
>> of committers is updated, as the label provider is triggered with the
>> PROJECT__SHORTNAME map.
>>
>> So I guessed that the problem is because you use a value property for
>> the list feature.
>>
>> I hope makes the problem a bit easier to understand.
>>
>> Cheers.
>> --Thomas
>>
>> Tom Schindl schrieb:
>>> Hi Thomas,
>>>
>>> Can you give me a complete example I'm not sure I completely got your
>>> use case. Do you mean the content of a cell in your table is made up
>>> from a List instead of a/mulitple Single-Valued feature(s)?
>>>
>>> Tom
>>>
>>> Am 18.05.10 00:15, schrieb Thomas Kowatsch:
>>>> Hi all.
>>>>
>>>> I have a problem with providing an IObservableMap for a list feature.
>>>>
>>>> My viewer needs to update the label when a list of a displayed entry
>>>> changes.
>>>> The label font will be italic if the list is not empty and normal if the
>>>> list is empty.
>>>>
>>>> How can I create an IObservableMap to pass as attribute Map to the
>>>> ObservableMapLabelProvider on creation?
>>>>
>>>> For a value property I can do:
>>>> EMFProperties.value(FooPackage.Literals.FOO__FOO_VALUE)
>>>> .observeDetail(ObservableListContentProvider.getKnownElement s())
>>>>
>>>> But what to do for a list property, e.g.
>>>> FooPackage.Literals.FOO_FOO_LIST?
>>>>
>>>> If there is no possibility to create a map for that, how can I trigger a
>>>> label update when the list of any displayed foo item changes?
>>>>
>>>> Cheers.
>>>> --Thomas
>
|
|
|
Re: [EMF Databinding] ObservableMapContentProvider - How to provide a map for a list feature [message #536838 is a reply to message #534653] |
Mon, 31 May 2010 08:23 |
Eclipse User |
|
|
|
Originally posted by: Thomas.Kowatsch.ruag.com
Hi Tom.
Just coming back from a few days off, I wonder if you've done anything
on this subject?
Cheers.
Tom Schindl schrieb:
> Hi,
>
> Ok. This make sense, I know that this thing is not working but I had no
> time to fix it. I'll take a look how I can fix this in my example and
> then you can probably copy it :-)
>
> I guess what we'd need is a ValueProperty to observe the size of a List
> which shouldn't be too hard to implement.
>
> Tom
>
> Am 19.05.10 18:51, schrieb Thomas Kowatsch:
>> Hi Tom.
>> Sorry for confusion.
>> I ment that the label font of my tree entry is dependend of a list
>> feature of the entry.
>> It is more or less the same problem you have in your "Project
>> Administration" example application. The label of the viewer in the
>> ProjectExplorerPart displays the number committers in square brackets.
>> You pass to the ObservabelMapLAbelProvider the following maps:
>>
>> IObservableMap[] map = new IObservableMap [4];
>> map[0] =
>> EMFProperties.value(ProjectPackage.Literals.PROJECT__SHORTNA ME).observeDetail(set);
>>
>> map[1] =
>> EMFProperties.value(ProjectPackage.Literals.PROJECT__COMMITT ERS).observeDetail(set);
>>
>> map[2] = EMFProperties.value(
>>
>> FeaturePath.fromList(ProjectPackage.Literals.COMMITTER_SHIP_ _PERSON,
>> ProjectPackage.Literals.PERSON__FIRSTNAME)).observeDetail(se t);
>> map[3] = EMFProperties.value(
>>
>> FeaturePath.fromList(ProjectPackage.Literals.COMMITTER_SHIP_ _PERSON,
>> ProjectPackage.Literals.PERSON__LASTNAME)).observeDetail(set );
>>
>> The PROJECT__COMMITTERS is a list feature, but you create a value
>> property from it. I guess the intention is to trigger a label update
>> when a committer is added. But this does not work! The label provider
>> does not get a LabelProviderChangedEvent when you add a committer, the
>> number of committers in the square brackets stay the same after you have
>> added a committer. only when the name is edited for example, the number
>> of committers is updated, as the label provider is triggered with the
>> PROJECT__SHORTNAME map.
>>
>> So I guessed that the problem is because you use a value property for
>> the list feature.
>>
>> I hope makes the problem a bit easier to understand.
>>
>> Cheers.
>> --Thomas
>>
>> Tom Schindl schrieb:
>>> Hi Thomas,
>>>
>>> Can you give me a complete example I'm not sure I completely got your
>>> use case. Do you mean the content of a cell in your table is made up
>>> from a List instead of a/mulitple Single-Valued feature(s)?
>>>
>>> Tom
>>>
>>> Am 18.05.10 00:15, schrieb Thomas Kowatsch:
>>>> Hi all.
>>>>
>>>> I have a problem with providing an IObservableMap for a list feature.
>>>>
>>>> My viewer needs to update the label when a list of a displayed entry
>>>> changes.
>>>> The label font will be italic if the list is not empty and normal if the
>>>> list is empty.
>>>>
>>>> How can I create an IObservableMap to pass as attribute Map to the
>>>> ObservableMapLabelProvider on creation?
>>>>
>>>> For a value property I can do:
>>>> EMFProperties.value(FooPackage.Literals.FOO__FOO_VALUE)
>>>> .observeDetail(ObservableListContentProvider.getKnownElement s())
>>>>
>>>> But what to do for a list property, e.g.
>>>> FooPackage.Literals.FOO_FOO_LIST?
>>>>
>>>> If there is no possibility to create a map for that, how can I trigger a
>>>> label update when the list of any displayed foo item changes?
>>>>
>>>> Cheers.
>>>> --Thomas
>
|
|
|
Re: [EMF Databinding] ObservableMapContentProvider - How to provide a map for a list feature [message #536841 is a reply to message #536838] |
Mon, 31 May 2010 08:31 |
Thomas Schindl Messages: 6651 Registered: July 2009 |
Senior Member |
|
|
sorry didn't had time yet :-( e4 is eating up all my time.
Tom
Am 31.05.10 10:23, schrieb Thomas Kowatsch:
> Hi Tom.
> Just coming back from a few days off, I wonder if you've done anything
> on this subject?
> Cheers.
>
> Tom Schindl schrieb:
>> Hi,
>>
>> Ok. This make sense, I know that this thing is not working but I had no
>> time to fix it. I'll take a look how I can fix this in my example and
>> then you can probably copy it :-)
>>
>> I guess what we'd need is a ValueProperty to observe the size of a List
>> which shouldn't be too hard to implement.
>>
>> Tom
>>
>> Am 19.05.10 18:51, schrieb Thomas Kowatsch:
>>> Hi Tom.
>>> Sorry for confusion.
>>> I ment that the label font of my tree entry is dependend of a list
>>> feature of the entry.
>>> It is more or less the same problem you have in your "Project
>>> Administration" example application. The label of the viewer in the
>>> ProjectExplorerPart displays the number committers in square brackets.
>>> You pass to the ObservabelMapLAbelProvider the following maps:
>>>
>>> IObservableMap[] map = new IObservableMap [4];
>>> map[0] =
>>> EMFProperties.value(ProjectPackage.Literals.PROJECT__SHORTNA ME).observeDetail(set);
>>>
>>>
>>> map[1] =
>>> EMFProperties.value(ProjectPackage.Literals.PROJECT__COMMITT ERS).observeDetail(set);
>>>
>>>
>>> map[2] = EMFProperties.value(
>>>
>>> FeaturePath.fromList(ProjectPackage.Literals.COMMITTER_SHIP_ _PERSON,
>>> ProjectPackage.Literals.PERSON__FIRSTNAME)).observeDetail(se t);
>>> map[3] = EMFProperties.value(
>>>
>>> FeaturePath.fromList(ProjectPackage.Literals.COMMITTER_SHIP_ _PERSON,
>>> ProjectPackage.Literals.PERSON__LASTNAME)).observeDetail(set );
>>>
>>> The PROJECT__COMMITTERS is a list feature, but you create a value
>>> property from it. I guess the intention is to trigger a label update
>>> when a committer is added. But this does not work! The label provider
>>> does not get a LabelProviderChangedEvent when you add a committer, the
>>> number of committers in the square brackets stay the same after you have
>>> added a committer. only when the name is edited for example, the number
>>> of committers is updated, as the label provider is triggered with the
>>> PROJECT__SHORTNAME map.
>>>
>>> So I guessed that the problem is because you use a value property for
>>> the list feature.
>>>
>>> I hope makes the problem a bit easier to understand.
>>>
>>> Cheers.
>>> --Thomas
>>>
>>> Tom Schindl schrieb:
>>>> Hi Thomas,
>>>>
>>>> Can you give me a complete example I'm not sure I completely got your
>>>> use case. Do you mean the content of a cell in your table is made up
>>>> from a List instead of a/mulitple Single-Valued feature(s)?
>>>>
>>>> Tom
>>>>
>>>> Am 18.05.10 00:15, schrieb Thomas Kowatsch:
>>>>> Hi all.
>>>>>
>>>>> I have a problem with providing an IObservableMap for a list feature.
>>>>>
>>>>> My viewer needs to update the label when a list of a displayed entry
>>>>> changes.
>>>>> The label font will be italic if the list is not empty and normal
>>>>> if the
>>>>> list is empty.
>>>>>
>>>>> How can I create an IObservableMap to pass as attribute Map to the
>>>>> ObservableMapLabelProvider on creation?
>>>>>
>>>>> For a value property I can do:
>>>>> EMFProperties.value(FooPackage.Literals.FOO__FOO_VALUE)
>>>>> .observeDetail(ObservableListContentProvider.getKnownElement s())
>>>>>
>>>>> But what to do for a list property, e.g.
>>>>> FooPackage.Literals.FOO_FOO_LIST?
>>>>>
>>>>> If there is no possibility to create a map for that, how can I
>>>>> trigger a
>>>>> label update when the list of any displayed foo item changes?
>>>>>
>>>>> Cheers.
>>>>> --Thomas
>>
|
|
|
Re: [EMF Databinding] ObservableMapContentProvider - How to provide a map for a list feature [message #536876 is a reply to message #536841] |
Mon, 31 May 2010 10:33 |
Eclipse User |
|
|
|
Originally posted by: Thomas.Kowatsch.ruag.com
Hi Tom.
No problem.
Just give me a note when you have done something.
Cheers.
--Thomas
Tom Schindl schrieb:
> sorry didn't had time yet :-( e4 is eating up all my time.
>
> Tom
>
> Am 31.05.10 10:23, schrieb Thomas Kowatsch:
>> Hi Tom.
>> Just coming back from a few days off, I wonder if you've done anything
>> on this subject?
>> Cheers.
>>
>> Tom Schindl schrieb:
>>> Hi,
>>>
>>> Ok. This make sense, I know that this thing is not working but I had no
>>> time to fix it. I'll take a look how I can fix this in my example and
>>> then you can probably copy it :-)
>>>
>>> I guess what we'd need is a ValueProperty to observe the size of a List
>>> which shouldn't be too hard to implement.
>>>
>>> Tom
>>>
>>> Am 19.05.10 18:51, schrieb Thomas Kowatsch:
>>>> Hi Tom.
>>>> Sorry for confusion.
>>>> I ment that the label font of my tree entry is dependend of a list
>>>> feature of the entry.
>>>> It is more or less the same problem you have in your "Project
>>>> Administration" example application. The label of the viewer in the
>>>> ProjectExplorerPart displays the number committers in square brackets.
>>>> You pass to the ObservabelMapLAbelProvider the following maps:
>>>>
>>>> IObservableMap[] map = new IObservableMap [4];
>>>> map[0] =
>>>> EMFProperties.value(ProjectPackage.Literals.PROJECT__SHORTNA ME).observeDetail(set);
>>>>
>>>>
>>>> map[1] =
>>>> EMFProperties.value(ProjectPackage.Literals.PROJECT__COMMITT ERS).observeDetail(set);
>>>>
>>>>
>>>> map[2] = EMFProperties.value(
>>>>
>>>> FeaturePath.fromList(ProjectPackage.Literals.COMMITTER_SHIP_ _PERSON,
>>>> ProjectPackage.Literals.PERSON__FIRSTNAME)).observeDetail(se t);
>>>> map[3] = EMFProperties.value(
>>>>
>>>> FeaturePath.fromList(ProjectPackage.Literals.COMMITTER_SHIP_ _PERSON,
>>>> ProjectPackage.Literals.PERSON__LASTNAME)).observeDetail(set );
>>>>
>>>> The PROJECT__COMMITTERS is a list feature, but you create a value
>>>> property from it. I guess the intention is to trigger a label update
>>>> when a committer is added. But this does not work! The label provider
>>>> does not get a LabelProviderChangedEvent when you add a committer, the
>>>> number of committers in the square brackets stay the same after you have
>>>> added a committer. only when the name is edited for example, the number
>>>> of committers is updated, as the label provider is triggered with the
>>>> PROJECT__SHORTNAME map.
>>>>
>>>> So I guessed that the problem is because you use a value property for
>>>> the list feature.
>>>>
>>>> I hope makes the problem a bit easier to understand.
>>>>
>>>> Cheers.
>>>> --Thomas
>>>>
>>>> Tom Schindl schrieb:
>>>>> Hi Thomas,
>>>>>
>>>>> Can you give me a complete example I'm not sure I completely got your
>>>>> use case. Do you mean the content of a cell in your table is made up
>>>>> from a List instead of a/mulitple Single-Valued feature(s)?
>>>>>
>>>>> Tom
>>>>>
>>>>> Am 18.05.10 00:15, schrieb Thomas Kowatsch:
>>>>>> Hi all.
>>>>>>
>>>>>> I have a problem with providing an IObservableMap for a list feature.
>>>>>>
>>>>>> My viewer needs to update the label when a list of a displayed entry
>>>>>> changes.
>>>>>> The label font will be italic if the list is not empty and normal
>>>>>> if the
>>>>>> list is empty.
>>>>>>
>>>>>> How can I create an IObservableMap to pass as attribute Map to the
>>>>>> ObservableMapLabelProvider on creation?
>>>>>>
>>>>>> For a value property I can do:
>>>>>> EMFProperties.value(FooPackage.Literals.FOO__FOO_VALUE)
>>>>>> .observeDetail(ObservableListContentProvider.getKnownElement s())
>>>>>>
>>>>>> But what to do for a list property, e.g.
>>>>>> FooPackage.Literals.FOO_FOO_LIST?
>>>>>>
>>>>>> If there is no possibility to create a map for that, how can I
>>>>>> trigger a
>>>>>> label update when the list of any displayed foo item changes?
>>>>>>
>>>>>> Cheers.
>>>>>> --Thomas
>
|
|
|
Goto Forum:
Current Time: Tue Apr 16 07:12:16 GMT 2024
Powered by FUDForum. Page generated in 0.30577 seconds
|