Community
Participate
Working Groups
Using Eclipse 3.5M2. The "This component is immediately activated" should not always be enabled and available for the user to check/uncheck. From 112.2.2 of the spec... "A component is an immediate component if it is not a factory component and either does not specify a service or specifies a service and the immediate attribute of the component element set to true." So, let me try and list the cases: - Check and disable the checkbox when the component does not provide any services and is not a factory component. - Uncheck and disable the checkbox when the component is a factory component. Since the <component> element's factory attribute can only be set from the source page, we're going to have to perform some validation to prevent people from doing this: <component name="foo" factory="bar" immediate="true"> ... </component> Since a factory component is never immediate. Likewise, this should be marked as invalid, since a component that does not provide services is always immediate. <component name="foo" immediate="false"> <implementation class="x.Component"/> </component> I believe that DS just ignores the immediate attribute when it does not apply, but it still would be nice to point out to people that their setting of the immediate attribute is sometimes worthless.
I agree! Can you also think of a better name for this message? "This component is immediately activated" is kind of vague to me.
Yes, Chris, the wording is vague I agree. The trouble is, if you don't know what an "immediate" or "enabled" component is these labels are not going to help you much. I really would like them to be clear to the user, but I fear that that's going to be hard. I'm wondering whether we should swing back the other way and simply name them: [x] Enabled [x] Immediate Let me ponder it a little and I'll report back.
Rafael, want to tackle this one? It's important we get this one right.
Created attachment 113940 [details] Error Reporter update Implementation: + if (!isService && !isFactory && !isImmediate) { + reportInvalidImmediate(element); + } + + if (isFactory && isImmediate) { + reportInvalidImmediateFactory(element); + } I also modified the DSComponent to set the immediate to true, to avoid warnings while creating a new one. :)
Thanks Rafael. I made some wording improvements.
Created attachment 114716 [details] DSOptionsSection updates Done! if (!isService && !isFactory) { if (!isImmediate) { fComponent.setImmediate(true); } enabled = false; } if (isFactory) { if (isImmediate) { fComponent.setImmediate(false); } enabled = false; }
done. > 20091009 Thanks Rafael. If you want to do testing that would be appreciated Simon to make sure we haven't broken workflows.
Created attachment 114720 [details] mylyn/context/zip