Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [ve-dev] Content pane problem.


My suggestion is to add yourself as a listener to this defect and wait a few weeks:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=48552

This defect is for exactly what you are trying to do and when it is complete the support will be there for you.

Thanks,
Rich


Xavier Cho <fender_rules@xxxxxxxxxxx>
Sent by: ve-dev-bounces@xxxxxxxxxxx

10/06/2005 03:36 AM

Please respond to
Discussions people developing code for the Visual Editor project

To
Discussions people developing code for the Visual Editor project <ve-dev@xxxxxxxxxxx>
cc
Subject
Re: [ve-dev] Content pane problem.





Thanks very much for the clarification! BTW,
'contentPane' in override file was just a typo.

Then is there anyway I can manually assign mainPanel
feature to Window instance somewhere - like
tree/graphical edit part or decoder class, or only
chance I can achieve is to use the latest version from
CVS? I'd like to make a MainPanel to be created and
added as a child of parent Window class so shown as
such in tree editor part when user opens a java file
defining that Window class in VE.

Regards,

Xavier Cho

--- Joe Winchester <WINCHEST@xxxxxxxxxx> wrote:

> Hi Xavier,
>
> What you want can't be completely done with VE until
> 1.2 comes out.  For
> this we are doing a lot of work to implement
> implicit settings which is
> what you have - the getMainPanel() is an implicit
> bean that is created by
> your window.
>
> Having said that, your XMI does seem wrong.  You
> have specified the name
> of the EReference as "contentPane".  The name you
> want to call it is
> "mainPanel" and what occurs is that the VE first
> performs introspection on
> your Window, see the getMainPanel() method and
> create a
> java.beans.PropertyDescriptor (or uses BeanInfo if
> you have one).  Then
> the .override is merged in with this and because the
> feature name is
> "mainPanel" this meshes up with the introspected one
> and adds any
> additional details.  However... because mainPanel
> has no set method it
> will be described as a read only feature and what
> will occur is that you
> are likely to get an exception thrown by someone
> trying to set a read only
> property with VE 1.1 because implicit isn't fully
> implemented until 1.2,
> although a lot of this code is released into the CVS
> HEAD stream.
>
> All you have to do in your code if you want to do
> something like add
> something to the mainPanel of a Window is
>
> IJavaInstance window;
> IJavaInstance mainPanel =
> BeanUtilities.getFeatureValue(window,"mainPanel");
> IJavaInstance theColorRed =
> BeanUtilities.createJavaObject("java.awt.Color",
> window.eResource().getResourceset() ,
> "java.awt.Color.RED");
> EStructuralFeature backgroundfSF =
> mainPanel.getEStructuralFeature("background");
> RuledCommandBuilder builder = new
> RuledCommandBuilder();
>
builder.applyAttributeSetting(mainPanel,backgroundSF,theColorRed);
>
editDomain.getCommandStack().execute(builder.getCommand());
>
> Let's assume that window is an instance variable in
> your class.  With 1.1
> the VE realizes that you are setting a property on a
> property and creates
> a field for the intermediate which is the mainPanel.
>  However the
> allocation given to it is to try and create one for
> you and it will get an
> exception when it tries to set the "mainPanel"
> feature and EMF realizes it
> is read only.  With 1.2 however it should keep the
> implicit allocation of
> getMainPanel() and work.
>
> Best regards,
>
> Joe Winchester
>
> Please respond to Discussions people developing code
> for the Visual Editor
> project <ve-dev@xxxxxxxxxxx>
> Sent by:        ve-dev-bounces@xxxxxxxxxxx
> To:     ve-dev@xxxxxxxxxxx
> cc:      
> Subject:        [ve-dev] Content pane problem.
>
>
> Hi, I'm developing a VE extension to be used with a
> custom graphic toolkit. It has Window class which
> has
> getMainPanel() method just like
> JFrame.getContentPane(), but the problem is it
> doesn't
> allow one to change it so lacks setter method
> setMainPanel().
>
> I've declared it as a structural feature in override
> file like below :
>
>  <event:Add  featureName="eStructuralFeatures">
>    <addedEObjects xsi:type="ecore:EReference"
> ame="contentPane" unsettable="true">
>       <eAnnotations
>
xsi:type="org.eclipse.ve.internal.jcm:BeanFeatureDecorator"
> linkType="CHILD"/>
>    </addedEObjects>
>  </event:Add>
>
> But call to eGet method on Window class model
> instance
> with mainPanel always return null and getMainPanel
> method on target VM is never actually called.
>
> When I make corresting setMainPanel method, this
> method is called on targetvm, but still the eGet
> method always return null.
>
> So if anyone could enlighten me about what am I
> doing
> wrong please? I've digged through the ve-jfc source
> but couldn't figure out how they handle the implicit
> allocation of contentPanel property.
>
> Thanks in advance,
>
> Xavier Cho
>
>
>  
>  
>
______________________________________________________
>
> Yahoo! for Good
> Donate to the Hurricane Katrina relief effort.
> http://store.yahoo.com/redcross-donate3/
>
> _______________________________________________
> ve-dev mailing list
> ve-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/ve-dev
>
> > _______________________________________________
> ve-dev mailing list
> ve-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/ve-dev
>



                                 
__________________________________
Yahoo! Mail - PC Magazine Editors' Choice 2005
http://mail.yahoo.com
_______________________________________________
ve-dev mailing list
ve-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ve-dev


Back to the top