View Javadoc

1   /*
2    * $Id: ToolBarTools.java,v 1.18 2011/06/16 09:29:41 jbmeslin Exp $
3    * 
4    */
5   package org.rcfaces.core.internal.tools;
6   
7   import java.util.Collections;
8   import java.util.List;
9   
10  import org.rcfaces.core.component.ToolBarComponent;
11  import org.rcfaces.core.component.ToolFolderComponent;
12  import org.rcfaces.core.component.ToolItemComponent;
13  import org.rcfaces.core.component.iterator.IToolFolderIterator;
14  import org.rcfaces.core.component.iterator.IToolItemIterator;
15  import org.rcfaces.core.internal.util.ComponentIterators;
16  
17  /**
18   * @author Olivier Oeuillot (latest modification by $Author: jbmeslin $)
19   * @version $Revision: 1.18 $ $Date: 2011/06/16 09:29:41 $
20   */
21  public class ToolBarTools {
22      private static final String REVISION = "$Revision: 1.18 $";
23  
24      private static final IToolItemIterator EMPTY_TOOL_ITEM_ITERATOR = new ToolItemListIterator(
25              Collections.EMPTY_LIST);
26  
27      private static final IToolFolderIterator EMPTY_TOOL_FOLDER_ITERATOR = new ToolFolderListIterator(
28              Collections.EMPTY_LIST);
29  
30      public static IToolItemIterator listToolItems(ToolFolderComponent component) {
31          List list = ComponentIterators.list(component, ToolItemComponent.class);
32          if (list.isEmpty()) {
33              return EMPTY_TOOL_ITEM_ITERATOR;
34          }
35  
36          return new ToolItemListIterator(list);
37      }
38  
39      public static IToolFolderIterator listToolFolders(ToolBarComponent component) {
40          List list = ComponentIterators.list(component,
41                  ToolFolderComponent.class);
42          if (list.isEmpty()) {
43              return EMPTY_TOOL_FOLDER_ITERATOR;
44          }
45  
46          return new ToolFolderListIterator(list);
47      }
48  
49      /**
50       * 
51       * @author Olivier Oeuillot (latest modification by $Author: jbmeslin $)
52       * @version $Revision: 1.18 $ $Date: 2011/06/16 09:29:41 $
53       */
54      private static final class ToolItemListIterator extends
55              ComponentIterators.ComponentListIterator implements
56              IToolItemIterator {
57          private static final String REVISION = "$Revision: 1.18 $";
58  
59          public ToolItemListIterator(List list) {
60              super(list);
61          }
62  
63          public final ToolItemComponent next() {
64              return (ToolItemComponent) nextComponent();
65          }
66  
67          public ToolItemComponent[] toArray() {
68              return (ToolItemComponent[]) toArray(new ToolItemComponent[count()]);
69          }
70      }
71  
72      /**
73       * 
74       * @author Olivier Oeuillot (latest modification by $Author: jbmeslin $)
75       * @version $Revision: 1.18 $ $Date: 2011/06/16 09:29:41 $
76       */
77      private static final class ToolFolderListIterator extends
78              ComponentIterators.ComponentListIterator implements
79              IToolFolderIterator {
80          private static final String REVISION = "$Revision: 1.18 $";
81  
82          public ToolFolderListIterator(List list) {
83              super(list);
84          }
85  
86          public final ToolFolderComponent next() {
87              return (ToolFolderComponent) nextComponent();
88          }
89  
90          public ToolFolderComponent[] toArray() {
91              return (ToolFolderComponent[]) toArray(new ToolFolderComponent[count()]);
92          }
93      }
94  
95  }