Re: Pollo extension
Al Byers <[email protected]> Sat, 15 Mar 2003 07:59:44 -0700
| Newsgroups | gmane.editors.pollo.devel |
|---|---|
| Message-ID | <[email protected]> |
Bruno,
Actually, it is not at this moment. I am going to be swamped this week,
but early on the week of Mar 24 I can package it all together and put a
new version on SourceForge.
There is something else I would like for you to consider. I have been
working closely with Open for Business (http://www.ofbiz.org). I think
that it will be the Linux of Web services. If you look at their site,
you will see a long list of technologies that they use and/or endorse. I
plan on using a modification of Pollo and my AG101 as an
admin/development tool for OFBiz since so many of their config files and
even many of their scripting files are in XML. OFBiz is in the process
of forming a coalition of many of its subprojects to do joint marketing.
If you are interested, I could push Pollo as a core technology and a
member of the coalition. Take a look and let me know if you want more
information.
-Al
Bruno Dumon wrote:
>Al,
>
>is your latest ag101 code (containing the changes you listed) somewhere
>available?
>
>Thanks,
>
>Bruno
>
>On Thu, 2003-02-27 at 17:04, Al Byers wrote:
>
>
>>Bruno,
>>
>>I realize that I was not getting the list responses sent to me, so I
>>re-subscribed. In the meantime, I will try to get my thinking in order
>>and respond to your questions.
>>
>> >
>> >> Any chance that we could pass Pollo as an arg to the PolloFrame
>> >> constructor instead?
>>
>> >Yes, but why? What are you trying to achieve by changing that? (not that
>> >I'm opposed to it, I'd just like to know the rationale behind it)
>>
>>
>>Like I have to have a reason ? :0) I guess because PolloFrame or its
>>subclass needs to have an instance of Pollo or its subclass. I could put
>>code in the PolloFrame constructor to do a Pollo.getInstance() and even
>>if Pollo was extended, the right version should be in the instance ivar.
>>But I thought that passing the instance in was more straight forward.
>>The motivating problem is that PolloFrame now populates its "pollo" ivar
>>in the class initialization code. If you see a better way, please let me
>>know and I will implement it.
>>
>>
>> >> 2. Creating the menubar and toolbar in the constructor makes it a little
>> >> problematic in extending. I guess an init() method might be better?
>>
>>
>>
>>>No problem with that. But how will you extend it? By subclassing?
>>>
>>>
>>No, I don't see anyway to extend it. I was suggesting the init() because it would allow me to not call it.
>>What I ended up doing was putting a noargs constructor in PolloFrame so that I didn't have to worry about
>>the menus being constructed until I wanted.
>>
>>
>>
>>I have finished my refactoring of my code to require as few changes to
>>Pollo as I could manage.
>>I tried to send this to the list, but I had the wrong address for you,
>>so I don't know if it made it or not. I will embed it instead of
>>attaching it.
>>
>>./org/outerj/pollo/Pollo.java:46: public Pollo() // -amb Need to
>>inherit? Was private.
>>./org/outerj/pollo/Pollo.java:305: public Action
>>getNewPolloFrameAction() // -amb Calling it from frame
>>./org/outerj/pollo/PolloFrame.java:49: protected Pollo pollo = null;
>>// was ->Pollo.getInstance(); This seems to be the most
>> disruptive change. Pollo being instantiated in
>>the class declaration does not give it
>> a change to be something else.
>> I felt it was better to pass the instance of
>>Pollo in,
>> but, perhaps, Pollo could be instantiated within
>>the constructor with a call
>> to Pollo.getInstance().
>> This is assuming that Pollo or a subclass has
>>already been instantiated and the Pollo.instance
>> var has been set.
>>./org/outerj/pollo/PolloFrame.java ? Added noargs constructor so that
>>it would not call create menus routine.
>>./org/outerj/pollo/PolloFrame.java:144:
>>viewMenu.add(Utilities.createMenuItemFromAction(Pollo.getInstance().getNewPolloFrameAction()));
>>// -amb
>>./org/outerj/pollo/action/NewPolloFrameAction.java:18: protected
>>Pollo pollo; // -amb If PolloFrame does not automatically have
>> a value of Pollo instantiated, then this
>>action must have one embedded
>> so that it can pass it to the PolloFrame
>>constructor.
>>./org/outerj/pollo/action/NewPolloFrameAction.java:20: public
>>NewPolloFrameAction(Pollo inst) // -amb Needs Pollo instance. See above.
>>./org/outerj/pollo/action/NewPolloFrameAction.java:22: pollo =
>>inst; // -amb
>>./org/outerj/pollo/config/ViewTypeConf.java:150: public ArrayList
>>getSchemas(){ // -amb Need to access schemas from outside.
>>./org/outerj/pollo/EditorPanelImpl.java:80: public EditorPanelImpl(){
>>// -amb Allows subclassing without calling createMenus, etc.
>>./org/outerj/pollo/xmleditor/XmlEditor.java:356: public void
>>rebuildView() // -amb This and some other methods that deal with the view
>> need to be callable from my XSL debugging
>>code. For instance, once the program
>> stops at a stylesheet node, I need to be
>>able to tell the XmlEditor to rebuild
>> that view as the highlighted one.
>>./org/outerj/pollo/xmleditor/XmlEditor.java:410: protected void
>>createViewsRecursive(Node parentNode, View parentView) // -amb See above.
>>./org/outerj/pollo/xmleditor/XmlEditorPanel.java:51: public
>>XmlEditorPanel(){ // -amb Necessary inorder to subclass
>>./org/outerj/pollo/xmleditor/attreditor/AttributesTableModel.java:97:
>>public TempAttrEditInfo getTempAttrEditInfo(int row) // -amb
>> Changed from protected so I can call it from
>>AttributesPanel.
>> I use this to determine schema node type (I think).
>>./org/outerj/pollo/xmleditor/attreditor/AttributesTableModel.java:290:
>>public class TempAttrEditInfo //-amb Was protected. I made it public.
>>./org/outerj/pollo/xmleditor/chardataeditor/CharDataPanel.java:94:
>>public JTextArea getCharTextArea(){ //-amb
>> Added to get access to charDataTextArea.
>> There are simply places where I need
>>to control what shows in the
>> attributes panel.
>>./org/outerj/pollo/xmleditor/model/XmlModel.java:751: public void
>>setCurrentMode(int md) // -amb Need to set mode from outside for XSL
>>debugging purpose
>>./org/outerj/pollo/xmleditor/model/XmlModel.java:756: public void
>>setDocument(Document doc){ // -amb Need to set document from outside for
>>XSL debugging purpose
>>./org/outerj/pollo/xmleditor/view/ChildrenBlockView.java:24:
>>protected ArrayList childViewList = new ArrayList(10); //-amb, was private,
>> but I need to define subclasses of
>>ElementBlockView so I can
>> put a "break" component on it.
>>./org/outerj/pollo/xmleditor/view/ChildrenBlockView.java:42:
>>public ArrayList getChildViewList(){ // -amb, too inconvenient not to
>>have this
>>./org/outerj/pollo/xmleditor/view/ElementBlockView.java:270:
>>protected int max(int val1, int val2, int val3) //-amb Was private,
>> but I created a subclass of
>>ElementBlockView.
>>
>>Is there anything more I can do to help with making Pollo extensible?
>>
>>-Al
>>
>>
--
Al Byers
Automation Groups Inc
777 S. State St.
Orem, UT 84058
801.400.5111
http://www.automationgroups.com
[email protected]
We're "Open for Business" (http://www.ofbiz.org)
- the leader in Java-based Web services development tools
-------------------------------------------------------
This SF.net email is sponsored by:Crypto Challenge is now open!
Get cracking and register here for some mind boggling fun and
the chance of winning an Apple iPod:
http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0031en