You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by js...@apache.org on 2003/01/31 13:54:02 UTC

cvs commit: jakarta-commons-sandbox/jelly/jelly-tags/swt/src/java/org/apache/commons/jelly/tags/swt WidgetTag.java

jstrachan    2003/01/31 04:54:02

  Modified:    jelly/jelly-tags/swt/src/test/org/apache/commons/jelly/tags/swt
                        tree.jelly tableTree.jelly example.jelly
               jelly/jelly-tags/swt project.xml
               jelly/jelly-tags/swt/src/java/org/apache/commons/jelly/tags/swt
                        WidgetTag.java
  Added:       jelly/jelly-tags/swt/src/test/org/apache/commons/jelly/tags/swt
                        parentDemo.jelly
  Log:
  Patched the demo so it works with the latest refactorings.
  
  Also patched the SWT tags so that widgets can be defined to be attached to a given parent, using a parent attribute.
  Added a simple example to the demo application (parentDemo.jelly)
  
  Revision  Changes    Path
  1.2       +3 -3      jakarta-commons-sandbox/jelly/jelly-tags/swt/src/test/org/apache/commons/jelly/tags/swt/tree.jelly
  
  Index: tree.jelly
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/jelly/jelly-tags/swt/src/test/org/apache/commons/jelly/tags/swt/tree.jelly,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- tree.jelly	6 Jan 2003 16:40:35 -0000	1.1
  +++ tree.jelly	31 Jan 2003 12:54:02 -0000	1.2
  @@ -1,7 +1,7 @@
   <?xml version="1.0"?>
   <j:jelly xmlns:j="jelly:core" xmlns="jelly:swt" xmlns:log="jelly:log">
   
  -  <shell text="Tree Demo" var="shell" style="border, close, min, max, resize, title">
  +  <shell text="Tree Demo" var="subShell" style="border, close, min, max, resize, title">
     	
     	<gridLayout/>
   
  @@ -31,6 +31,6 @@
   		</tree>
     </shell>
   
  -	${shell.pack()}
  -	${shell.open()}
  +	${subShell.pack()}
  +	${subShell.open()}
   </j:jelly>
  
  
  
  1.2       +2 -2      jakarta-commons-sandbox/jelly/jelly-tags/swt/src/test/org/apache/commons/jelly/tags/swt/tableTree.jelly
  
  Index: tableTree.jelly
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/jelly/jelly-tags/swt/src/test/org/apache/commons/jelly/tags/swt/tableTree.jelly,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- tableTree.jelly	6 Jan 2003 16:40:35 -0000	1.1
  +++ tableTree.jelly	31 Jan 2003 12:54:02 -0000	1.2
  @@ -1,7 +1,7 @@
   <?xml version="1.0"?>
   <j:jelly xmlns:j="jelly:core" xmlns="jelly:swt" xmlns:log="jelly:log">
   
  -  <shell text="TableTree Demo" var="shell" style="border, close, min, max, resize, title">
  +  <shell text="TableTree Demo" var="subShell" style="border, close, min, max, resize, title">
     	
     	<gridLayout/>
   
  @@ -40,5 +40,5 @@
   		</tableTree>
     </shell>
   
  -	${shell.open()}
  +	${subShell.open()}
   </j:jelly>
  
  
  
  1.2       +5 -0      jakarta-commons-sandbox/jelly/jelly-tags/swt/src/test/org/apache/commons/jelly/tags/swt/example.jelly
  
  Index: example.jelly
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/jelly/jelly-tags/swt/src/test/org/apache/commons/jelly/tags/swt/example.jelly,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- example.jelly	6 Jan 2003 16:40:35 -0000	1.1
  +++ example.jelly	31 Jan 2003 12:54:02 -0000	1.2
  @@ -71,6 +71,11 @@
     				<j:include uri="tableTree.jelly"/>
     			</onEvent>
   			</toolItem>
  +  		<toolItem text="Parent Demo" toolTipText="Starts the Parent Demo that shows how to start a component given a parent widget">
  +  			<onEvent type="Selection">
  +  				<j:include uri="parentDemo.jelly"/>
  +  			</onEvent>
  +			</toolItem>
     	</toolBar>
     </shell>
   
  
  
  
  1.1                  jakarta-commons-sandbox/jelly/jelly-tags/swt/src/test/org/apache/commons/jelly/tags/swt/parentDemo.jelly
  
  Index: parentDemo.jelly
  ===================================================================
  <?xml version="1.0"?>
  <j:jelly xmlns:j="jelly:core" xmlns="jelly:swt" xmlns:log="jelly:log">
  
    <shell text="Parent Demo" var="subShell" style="border, close, min, max, resize, title">
    	
    	<gridLayout/>
  
    </shell>
  
  	<!-- 
  		|| This demo shows how we can create a brand new widget which is added to a 
  		|| given parent control (in this case the shell).
  		|| This widget can be defined as a variable using the var="foo" attribute just
  		|| like any other widget.
  		-->
  	<tree parent="${subShell}" toolTipText="This is a tree!" style="multi">
  		
  		<gridData style="fill_both"/>
  		
  		<!-- we'd normally use some Java bean model to implement the next bit -->
  		<treeItem text="A">
  			<treeItem text="A/A"/>
  			<treeItem text="A/B"/>
  			<treeItem text="A/C"/>
  		</treeItem>
  		<treeItem text="B">
  			<treeItem text="B/A"/>
  			<treeItem text="B/B"/>
  			<treeItem text="B/C"/>
  		</treeItem>
  						
  		<menu style="pop_up">
  			<menuItem text="do something!">
  				<onEvent type="Selection">
  					<log:info>Clicked on ${event}</log:info>
  				</onEvent>
  			</menuItem>
  		</menu>							
  	</tree>
  	
  	${subShell.pack()}
  	${subShell.open()}
  	
  </j:jelly>
  
  
  
  1.7       +4 -0      jakarta-commons-sandbox/jelly/jelly-tags/swt/project.xml
  
  Index: project.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/jelly/jelly-tags/swt/project.xml,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- project.xml	27 Jan 2003 05:24:15 -0000	1.6
  +++ project.xml	31 Jan 2003 12:54:02 -0000	1.7
  @@ -46,6 +46,10 @@
         <id>commons-cli</id>
         <version>SNAPSHOT</version>
       </dependency>
  +    <dependency>
  +      <id>commons-jelly+tags-log</id>
  +      <version>SNAPSHOT</version>
  +    </dependency>
       	
       <!-- END for running demos -->
     </dependencies>
  
  
  
  1.4       +26 -5     jakarta-commons-sandbox/jelly/jelly-tags/swt/src/java/org/apache/commons/jelly/tags/swt/WidgetTag.java
  
  Index: WidgetTag.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/jelly/jelly-tags/swt/src/java/org/apache/commons/jelly/tags/swt/WidgetTag.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- WidgetTag.java	24 Jan 2003 22:53:33 -0000	1.3
  +++ WidgetTag.java	31 Jan 2003 12:54:02 -0000	1.4
  @@ -84,7 +84,8 @@
   
       /** The Log to which logging calls will be made. */
       private static final Log log = LogFactory.getLog(WidgetTag.class);
  -    
  +
  +    private Widget parent;    
       
       public WidgetTag(Class widgetClass) {
           super(widgetClass);
  @@ -113,13 +114,33 @@
        * @return the parent widget which this widget will be added to.
        */
       public Widget getParentWidget() {
  -        WidgetTag tag = (WidgetTag) findAncestorWithClass(WidgetTag.class);
  -        if (tag != null) {
  -            return tag.getWidget();
  +        if (parent == null) {
  +            WidgetTag tag = (WidgetTag) findAncestorWithClass(WidgetTag.class);
  +            if (tag != null) {
  +                parent = tag.getWidget();
  +            }
           }
  -        return null;
  +        return parent;
       }
   
  +    // Tag interface
  +    //-------------------------------------------------------------------------
  +    public void doTag(XMLOutput output) throws JellyTagException {
  +        Map attributes = getAttributes();
  +        Object parent = attributes.remove("parent");
  +        if (parent != null) {
  +            if (parent instanceof Widget) {
  +                this.parent = (Widget) parent;
  +            }
  +            else {
  +                throw new JellyTagException(
  +                    "The parent attribute is not a Widget, it is of type: "
  +                    + parent.getClass().getName() + " value: " + parent
  +                );
  +            }                    
  +        }
  +        super.doTag(output);
  +    }
       
       // Implementation methods
       //-------------------------------------------------------------------------                    
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org