You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by tv...@apache.org on 2009/11/02 15:59:54 UTC

svn commit: r831909 - in /incubator/pivot/trunk: demos/src/org/apache/pivot/demos/explorer/ tools/src/org/apache/pivot/tools/wtk/

Author: tvolkert
Date: Mon Nov  2 14:59:53 2009
New Revision: 831909

URL: http://svn.apache.org/viewvc?rev=831909&view=rev
Log:
Updates to component explorer, event logger

Modified:
    incubator/pivot/trunk/demos/src/org/apache/pivot/demos/explorer/ComponentExplorer.java
    incubator/pivot/trunk/demos/src/org/apache/pivot/demos/explorer/component_explorer.wtkx
    incubator/pivot/trunk/tools/src/org/apache/pivot/tools/wtk/EventLogger.java
    incubator/pivot/trunk/tools/src/org/apache/pivot/tools/wtk/EventLoggerSkin.java
    incubator/pivot/trunk/tools/src/org/apache/pivot/tools/wtk/event_logger_skin.wtkx

Modified: incubator/pivot/trunk/demos/src/org/apache/pivot/demos/explorer/ComponentExplorer.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/demos/src/org/apache/pivot/demos/explorer/ComponentExplorer.java?rev=831909&r1=831908&r2=831909&view=diff
==============================================================================
--- incubator/pivot/trunk/demos/src/org/apache/pivot/demos/explorer/ComponentExplorer.java (original)
+++ incubator/pivot/trunk/demos/src/org/apache/pivot/demos/explorer/ComponentExplorer.java Mon Nov  2 14:59:53 2009
@@ -17,10 +17,10 @@
 package org.apache.pivot.demos.explorer;
 
 import java.io.IOException;
+import java.net.URL;
 
 import org.apache.pivot.collections.List;
 import org.apache.pivot.collections.Map;
-import org.apache.pivot.collections.Sequence;
 import org.apache.pivot.collections.Sequence.Tree;
 import org.apache.pivot.collections.Sequence.Tree.Path;
 import org.apache.pivot.serialization.SerializationException;
@@ -31,30 +31,49 @@
 import org.apache.pivot.wtk.Application;
 import org.apache.pivot.wtk.ApplicationContext;
 import org.apache.pivot.wtk.Border;
+import org.apache.pivot.wtk.Button;
+import org.apache.pivot.wtk.ButtonGroup;
+import org.apache.pivot.wtk.ButtonGroupListener;
 import org.apache.pivot.wtk.Component;
 import org.apache.pivot.wtk.ComponentMouseButtonListener;
 import org.apache.pivot.wtk.DesktopApplicationContext;
 import org.apache.pivot.wtk.Display;
 import org.apache.pivot.wtk.Mouse;
 import org.apache.pivot.wtk.ScrollPane;
+import org.apache.pivot.wtk.ScrollPane.ScrollBarPolicy;
 import org.apache.pivot.wtk.TabPane;
+import org.apache.pivot.wtk.TabPaneSelectionListener;
 import org.apache.pivot.wtk.TreeView;
-import org.apache.pivot.wtk.TreeViewSelectionListener;
 import org.apache.pivot.wtk.Window;
 import org.apache.pivot.wtkx.WTKXSerializer;
 
 public class ComponentExplorer implements Application {
     private Window window = null;
     private TreeView treeView = null;
-    private ScrollPane scrollPane = null;
-    private Border contentPane = null;
-    private TabPane inspectorTabPane = null;
+    private TabPane contentTabPane = null;
     private ComponentPropertyInspector componentPropertyInspector = null;
     private ComponentStyleInspector componentStyleInspector = null;
     private EventLogger eventLogger = null;
 
+    private ButtonGroup horizontalScrollBarPolicyGroup = null;
+    private ButtonGroup verticalScrollBarPolicyGroup = null;
+    private Button horizontalAutoButton = null;
+    private Button horizontalFillButton = null;
+    private Button horizontalFillToCapacityButton = null;
+    private Button horizontalNeverButton = null;
+    private Button verticalAutoButton = null;
+    private Button verticalFillButton = null;
+    private Button verticalFillToCapacityButton = null;
+    private Button verticalNeverButton = null;
+
     public static final String CLASS_PROPERTY = "class";
 
+    private static final String SRC_KEY = "src";
+    private static final String HORIZONTAL_SCROLL_BAR_POLICY_KEY = "horizontalScrollBarPolicy";
+    private static final String VERTICAL_SCROLL_BAR_POLICY_KEY = "verticalScrollBarPolicy";
+    private static final String COMPONENT_KEY = "component";
+    private static final String SCROLL_PANE_KEY = "scrollPane";
+
     @Override
     public void startup(Display display, Map<String, String> properties)
         throws Exception {
@@ -63,48 +82,21 @@
         window = (Window)wtkxSerializer.readObject(this, "component_explorer.wtkx");
 
         treeView = wtkxSerializer.getValue("treeView");
-        scrollPane = wtkxSerializer.getValue("scrollPane");
-        contentPane = wtkxSerializer.getValue("contentPane");
-        inspectorTabPane = wtkxSerializer.getValue("inspectorTabPane");
+        contentTabPane = wtkxSerializer.getValue("contentTabPane");
         componentPropertyInspector = wtkxSerializer.getValue("componentPropertyInspector");
         componentStyleInspector = wtkxSerializer.getValue("componentStyleInspector");
         eventLogger = wtkxSerializer.getValue("eventLogger");
 
-        treeView.getTreeViewSelectionListeners().add(new TreeViewSelectionListener.Adapter() {
-            @Override
-            public void selectedPathsChanged(TreeView treeView,
-                Sequence<Path> previousSelectedPaths) {
-                Component component = null;
-
-                Object node = treeView.getSelectedNode();
-                if (node instanceof ComponentNode) {
-                    ComponentNode componentNode = (ComponentNode)node;
-
-                    inspectorTabPane.setVisible(true);
-
-                    WTKXSerializer wtkxSerializer = new WTKXSerializer();
-                    try {
-                        component = (Component)wtkxSerializer.readObject(componentNode.getSrc());
-                    } catch (IOException exception) {
-                        throw new RuntimeException(exception);
-                    } catch (SerializationException exception) {
-                        throw new RuntimeException(exception);
-                    }
-
-                    scrollPane.setHorizontalScrollBarPolicy
-                        (componentNode.getHorizontalScrollBarPolicy());
-                    scrollPane.setVerticalScrollBarPolicy
-                        (componentNode.getVerticalScrollBarPolicy());
-                } else {
-                    inspectorTabPane.setVisible(false);
-                }
-
-                contentPane.setContent(component);
-                componentPropertyInspector.setSource(component);
-                componentStyleInspector.setSource(component);
-                eventLogger.setSource(component);
-            }
-        });
+        horizontalScrollBarPolicyGroup = wtkxSerializer.getValue("horizontalScrollBarPolicyGroup");
+        verticalScrollBarPolicyGroup = wtkxSerializer.getValue("verticalScrollBarPolicyGroup");
+        horizontalAutoButton = wtkxSerializer.getValue("horizontalAutoButton");
+        horizontalFillButton = wtkxSerializer.getValue("horizontalFillButton");
+        horizontalFillToCapacityButton = wtkxSerializer.getValue("horizontalFillToCapacityButton");
+        horizontalNeverButton = wtkxSerializer.getValue("horizontalNeverButton");
+        verticalAutoButton = wtkxSerializer.getValue("verticalAutoButton");
+        verticalFillButton = wtkxSerializer.getValue("verticalFillButton");
+        verticalFillToCapacityButton = wtkxSerializer.getValue("verticalFillToCapacityButton");
+        verticalNeverButton = wtkxSerializer.getValue("verticalNeverButton");
 
         treeView.getComponentMouseButtonListeners().add(new ComponentMouseButtonListener.Adapter() {
             @Override
@@ -115,9 +107,11 @@
 
                     if (path != null) {
                         List<?> treeData = treeView.getTreeData();
-                        Object treeNode = Tree.get(treeData, path);
+                        Object node = Tree.get(treeData, path);
 
-                        if (treeNode instanceof List<?>) {
+                        if (node instanceof ComponentNode) {
+                            open((ComponentNode)node);
+                        } else if (node instanceof List<?>) {
                             treeView.setBranchExpanded(path, !treeView.isBranchExpanded(path));
                         }
                     }
@@ -127,6 +121,120 @@
             }
         });
 
+        contentTabPane.getTabPaneSelectionListeners().add(new TabPaneSelectionListener.Adapter() {
+            @Override
+            public void selectedIndexChanged(TabPane tabPane, int previousSelectedIndex) {
+                Component selectedTab = tabPane.getSelectedTab();
+
+                if (selectedTab != null) {
+                    Component component = (Component)selectedTab.getUserData().get(COMPONENT_KEY);
+                    componentPropertyInspector.setSource(component);
+                    componentStyleInspector.setSource(component);
+                    eventLogger.setSource(component);
+
+                    ScrollBarPolicy horizontalScrollBarPolicy = (ScrollBarPolicy)
+                        selectedTab.getUserData().get(HORIZONTAL_SCROLL_BAR_POLICY_KEY);
+                    switch (horizontalScrollBarPolicy) {
+                    case AUTO:
+                        horizontalScrollBarPolicyGroup.setSelection(horizontalAutoButton);
+                        break;
+                    case FILL:
+                        horizontalScrollBarPolicyGroup.setSelection(horizontalFillButton);
+                        break;
+                    case FILL_TO_CAPACITY:
+                        horizontalScrollBarPolicyGroup.setSelection(horizontalFillToCapacityButton);
+                        break;
+                    case NEVER:
+                        horizontalScrollBarPolicyGroup.setSelection(horizontalNeverButton);
+                        break;
+                    }
+
+                    ScrollBarPolicy verticalScrollBarPolicy = (ScrollBarPolicy)
+                        selectedTab.getUserData().get(VERTICAL_SCROLL_BAR_POLICY_KEY);
+                    switch (verticalScrollBarPolicy) {
+                    case AUTO:
+                        verticalScrollBarPolicyGroup.setSelection(verticalAutoButton);
+                        break;
+                    case FILL:
+                        verticalScrollBarPolicyGroup.setSelection(verticalFillButton);
+                        break;
+                    case FILL_TO_CAPACITY:
+                        verticalScrollBarPolicyGroup.setSelection(verticalFillToCapacityButton);
+                        break;
+                    case NEVER:
+                        verticalScrollBarPolicyGroup.setSelection(verticalNeverButton);
+                        break;
+                    }
+                }
+            }
+        });
+
+        horizontalScrollBarPolicyGroup.getButtonGroupListeners().add
+            (new ButtonGroupListener.Adapter() {
+            @Override
+            public void selectionChanged(ButtonGroup buttonGroup, Button previousSelection) {
+                Component selectedTab = contentTabPane.getSelectedTab();
+
+                if (selectedTab != null) {
+                    Button button = buttonGroup.getSelection();
+
+                    ScrollBarPolicy horizontalScrollBarPolicy = null;
+
+                    if (button == horizontalAutoButton) {
+                        horizontalScrollBarPolicy = ScrollBarPolicy.AUTO;
+                    } else if (button == horizontalFillButton) {
+                        horizontalScrollBarPolicy = ScrollBarPolicy.FILL;
+                    } else if (button == horizontalFillToCapacityButton) {
+                        horizontalScrollBarPolicy = ScrollBarPolicy.FILL_TO_CAPACITY;
+                    } else if (button == horizontalNeverButton) {
+                        horizontalScrollBarPolicy = ScrollBarPolicy.NEVER;
+                    }
+
+                    if (horizontalScrollBarPolicy != null) {
+                        selectedTab.getUserData().put(HORIZONTAL_SCROLL_BAR_POLICY_KEY,
+                            horizontalScrollBarPolicy);
+
+                        ScrollPane scrollPane = (ScrollPane)selectedTab.getUserData().get
+                            (SCROLL_PANE_KEY);
+                        scrollPane.setHorizontalScrollBarPolicy(horizontalScrollBarPolicy);
+                    }
+                }
+            }
+        });
+
+        verticalScrollBarPolicyGroup.getButtonGroupListeners().add
+            (new ButtonGroupListener.Adapter() {
+            @Override
+            public void selectionChanged(ButtonGroup buttonGroup, Button previousSelection) {
+                Component selectedTab = contentTabPane.getSelectedTab();
+
+                if (selectedTab != null) {
+                    Button button = buttonGroup.getSelection();
+
+                    ScrollBarPolicy verticalScrollBarPolicy = null;
+
+                    if (button == verticalAutoButton) {
+                        verticalScrollBarPolicy = ScrollBarPolicy.AUTO;
+                    } else if (button == verticalFillButton) {
+                        verticalScrollBarPolicy = ScrollBarPolicy.FILL;
+                    } else if (button == verticalFillToCapacityButton) {
+                        verticalScrollBarPolicy = ScrollBarPolicy.FILL_TO_CAPACITY;
+                    } else if (button == verticalNeverButton) {
+                        verticalScrollBarPolicy = ScrollBarPolicy.NEVER;
+                    }
+
+                    if (verticalScrollBarPolicy != null) {
+                        selectedTab.getUserData().put(VERTICAL_SCROLL_BAR_POLICY_KEY,
+                            verticalScrollBarPolicy);
+
+                        ScrollPane scrollPane = (ScrollPane)selectedTab.getUserData().get
+                            (SCROLL_PANE_KEY);
+                        scrollPane.setVerticalScrollBarPolicy(verticalScrollBarPolicy);
+                    }
+                }
+            }
+        });
+
         Path initialSelectedPath = null;
 
         String classProperty = properties.get(CLASS_PROPERTY);
@@ -138,17 +246,24 @@
                 ComponentNode componentNode = (ComponentNode)node;
 
                 if (classProperty != null) {
+                    // class property was set; open the corresponding
+                    // component node
                     if (componentNode.getText().equals(classProperty)) {
+                        open(componentNode);
                         initialSelectedPath = itemIterator.getPath();
                         break;
                     }
                 } else {
+                    // class property was *not* set; open the first component
+                    // node we find
+                    open(componentNode);
                     initialSelectedPath = itemIterator.getPath();
                     break;
                 }
             }
         }
 
+        // If we've selected a path, ensure that it's visible to the user
         if (initialSelectedPath != null) {
             treeView.setSelectedPath(initialSelectedPath);
 
@@ -169,6 +284,60 @@
         treeView.requestFocus();
     }
 
+    private void open(ComponentNode componentNode) {
+        URL src = componentNode.getSrc();
+        String srcPath = src.getPath();
+        ScrollBarPolicy horizontalScrollBarPolicy = componentNode.getHorizontalScrollBarPolicy();
+        ScrollBarPolicy verticalScrollBarPolicy = componentNode.getVerticalScrollBarPolicy();
+
+        int tabIndex = -1;
+        TabPane.TabSequence tabs = contentTabPane.getTabs();
+        for (int i = 0, n = tabs.getLength(); i < n; i++) {
+            Component tab = tabs.get(i);
+
+            if (srcPath.equals((String)tab.getUserData().get(SRC_KEY))) {
+                tabIndex = i;
+                break;
+            }
+        }
+
+        if (tabIndex == -1) {
+            Component component = null;
+
+            WTKXSerializer wtkxSerializer = new WTKXSerializer();
+            try {
+                component = (Component)wtkxSerializer.readObject(src);
+            } catch (IOException exception) {
+                throw new RuntimeException(exception);
+            } catch (SerializationException exception) {
+                throw new RuntimeException(exception);
+            }
+
+            Border contentPane = new Border();
+            contentPane.getStyles().put("thickness", 0);
+            contentPane.getStyles().put("padding", 6);
+            contentPane.setContent(component);
+
+            ScrollPane scrollPane = new ScrollPane();
+            scrollPane.setHorizontalScrollBarPolicy(horizontalScrollBarPolicy);
+            scrollPane.setVerticalScrollBarPolicy(verticalScrollBarPolicy);
+            scrollPane.setView(contentPane);
+
+            Border border = new Border();
+            border.getUserData().put(SRC_KEY, srcPath);
+            border.getUserData().put(HORIZONTAL_SCROLL_BAR_POLICY_KEY, horizontalScrollBarPolicy);
+            border.getUserData().put(VERTICAL_SCROLL_BAR_POLICY_KEY, verticalScrollBarPolicy);
+            border.getUserData().put(COMPONENT_KEY, component);
+            border.getUserData().put(SCROLL_PANE_KEY, scrollPane);
+            border.setContent(scrollPane);
+
+            tabIndex = contentTabPane.getTabs().add(border);
+            TabPane.setLabel(border, srcPath.substring(srcPath.lastIndexOf('/') + 1));
+        }
+
+        contentTabPane.setSelectedIndex(tabIndex);
+    }
+
     @Override
     public boolean shutdown(boolean optional) throws Exception {
         if (window != null) {

Modified: incubator/pivot/trunk/demos/src/org/apache/pivot/demos/explorer/component_explorer.wtkx
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/demos/src/org/apache/pivot/demos/explorer/component_explorer.wtkx?rev=831909&r1=831908&r2=831909&view=diff
==============================================================================
--- incubator/pivot/trunk/demos/src/org/apache/pivot/demos/explorer/component_explorer.wtkx (original)
+++ incubator/pivot/trunk/demos/src/org/apache/pivot/demos/explorer/component_explorer.wtkx Mon Nov  2 14:59:53 2009
@@ -23,262 +23,371 @@
     xmlns:explorer="org.apache.pivot.demos.explorer"
     xmlns="org.apache.pivot.wtk">
     <content>
-        <SplitPane orientation="horizontal" splitRatio="0.25">
-            <left>
-                <Border>
-                    <content>
-                        <ScrollPane horizontalScrollBarPolicy="fill_to_capacity">
-                            <view>
-                                <TreeView wtkx:id="treeView">
-                                    <nodeRenderer>
-                                        <content:TreeViewNodeRenderer styles="{padding:1}"/>
-                                    </nodeRenderer>
-                                    <treeData>
-                                        <content:TreeBranch>
-                                            <content:TreeBranch text="Buttons"
-                                                icon="@folder.png">
-                                                <explorer:ComponentNode text="PushButton"
-                                                    icon="@page_white.png"
-                                                    src="@buttons/push_button.wtkx"
-                                                    horizontalScrollBarPolicy="auto"
-                                                    verticalScrollBarPolicy="auto"/>
-                                                <explorer:ComponentNode text="RadioButton"
-                                                    icon="@page_white.png"
-                                                    src="@buttons/radio_button.wtkx"
-                                                    horizontalScrollBarPolicy="auto"
-                                                    verticalScrollBarPolicy="auto"/>
-                                                <explorer:ComponentNode text="Checkbox"
-                                                    icon="@page_white.png"
-                                                    src="@buttons/checkbox.wtkx"
-                                                    horizontalScrollBarPolicy="auto"
-                                                    verticalScrollBarPolicy="auto"/>
-                                                <explorer:ComponentNode text="LinkButton"
-                                                    icon="@page_white.png"
-                                                    src="@buttons/link_button.wtkx"
-                                                    horizontalScrollBarPolicy="auto"
-                                                    verticalScrollBarPolicy="auto"/>
-                                            </content:TreeBranch>
-                                            <content:TreeBranch text="Lists"
-                                                icon="@folder.png">
-                                                <explorer:ComponentNode text="ListView"
-                                                    icon="@page_white.png"
-                                                    src="@lists/list_view.wtkx"
-                                                    horizontalScrollBarPolicy="fill_to_capacity"
-                                                    verticalScrollBarPolicy="auto"/>
-                                                <explorer:ComponentNode text="ListButton"
-                                                    icon="@page_white.png"
-                                                    src="@lists/list_button.wtkx"
-                                                    horizontalScrollBarPolicy="auto"
-                                                    verticalScrollBarPolicy="auto"/>
-                                            </content:TreeBranch>
-                                            <content:TreeBranch text="Text"
-                                                icon="@folder.png">
-                                                <explorer:ComponentNode text="TextInput"
-                                                    icon="@page_white.png"
-                                                    src="@text/text_input.wtkx"
-                                                    horizontalScrollBarPolicy="auto"
-                                                    verticalScrollBarPolicy="auto"/>
-                                                <explorer:ComponentNode text="TextArea"
-                                                    icon="@page_white.png"
-                                                    src="@text/text_area.wtkx"
-                                                    horizontalScrollBarPolicy="fill"
-                                                    verticalScrollBarPolicy="fill_to_capacity"/>
-                                            </content:TreeBranch>
-                                            <content:TreeBranch text="Layout Containers"
-                                                icon="@folder.png">
-                                                <explorer:ComponentNode text="FlowPane"
-                                                    icon="@page_white.png"
-                                                    src="@layout/flow_pane.wtkx"
-                                                    horizontalScrollBarPolicy="fill"
-                                                    verticalScrollBarPolicy="fill"/>
-                                                <explorer:ComponentNode text="BoxPane"
-                                                    icon="@page_white.png"
-                                                    src="@layout/box_pane.wtkx"
-                                                    horizontalScrollBarPolicy="fill"
-                                                    verticalScrollBarPolicy="fill"/>
-                                                <explorer:ComponentNode text="TablePane"
-                                                    icon="@page_white.png"
-                                                    src="@layout/table_pane.wtkx"
-                                                    horizontalScrollBarPolicy="fill"
-                                                    verticalScrollBarPolicy="fill"/>
-                                                <explorer:ComponentNode text="Border"
-                                                    icon="@page_white.png"
-                                                    src="@layout/border.wtkx"
-                                                    horizontalScrollBarPolicy="fill"
-                                                    verticalScrollBarPolicy="fill"/>
-                                                <explorer:ComponentNode text="StackPane"
-                                                    icon="@page_white.png"
-                                                    src="@layout/stack_pane.wtkx"
-                                                    horizontalScrollBarPolicy="fill"
-                                                    verticalScrollBarPolicy="fill"/>
-                                                <explorer:ComponentNode text="SplitPane"
-                                                    icon="@page_white.png"
-                                                    src="@layout/split_pane.wtkx"
-                                                    horizontalScrollBarPolicy="fill"
-                                                    verticalScrollBarPolicy="fill"/>
-                                                <explorer:ComponentNode text="Form"
-                                                    icon="@page_white.png"
-                                                    src="@layout/form.wtkx"
-                                                    horizontalScrollBarPolicy="fill"
-                                                    verticalScrollBarPolicy="auto"/>
-                                                <explorer:ComponentNode text="Panel"
-                                                    icon="@page_white.png"
-                                                    src="@layout/panel.wtkx"
-                                                    horizontalScrollBarPolicy="fill"
-                                                    verticalScrollBarPolicy="fill"/>
-                                            </content:TreeBranch>
-                                            <content:TreeBranch text="Navigation Containers"
-                                                icon="@folder.png">
-                                                <explorer:ComponentNode text="CardPane"
-                                                    icon="@page_white.png"
-                                                    src="@navigation/card_pane.wtkx"
-                                                    horizontalScrollBarPolicy="fill"
-                                                    verticalScrollBarPolicy="fill"/>
-                                                <explorer:ComponentNode text="TabPane"
-                                                    icon="@page_white.png"
-                                                    src="@navigation/tab_pane.wtkx"
-                                                    horizontalScrollBarPolicy="auto"
-                                                    verticalScrollBarPolicy="auto"/>
-                                                <explorer:ComponentNode text="Accordion"
-                                                    icon="@page_white.png"
-                                                    src="@navigation/accordion.wtkx"
-                                                    horizontalScrollBarPolicy="auto"
-                                                    verticalScrollBarPolicy="auto"/>
-                                                <explorer:ComponentNode text="Expander"
-                                                    icon="@page_white.png"
-                                                    src="@navigation/expander.wtkx"
-                                                    horizontalScrollBarPolicy="auto"
-                                                    verticalScrollBarPolicy="auto"/>
-                                                <explorer:ComponentNode text="Rollup"
-                                                    icon="@page_white.png"
-                                                    src="@navigation/rollup.wtkx"
-                                                    horizontalScrollBarPolicy="auto"
-                                                    verticalScrollBarPolicy="auto"/>
-                                                <content:TreeBranch text="Viewports"
-                                                    icon="@folder.png">
-                                                    <explorer:ComponentNode text="ScrollPane"
-                                                        icon="@page_white.png"
-                                                        src="@navigation/scroll_pane.wtkx"
-                                                        horizontalScrollBarPolicy="fill"
-                                                        verticalScrollBarPolicy="fill"/>
-                                                    <explorer:ComponentNode text="Panorama"
-                                                        icon="@page_white.png"
-                                                        src="@navigation/panorama.wtkx"
-                                                        horizontalScrollBarPolicy="fill"
-                                                        verticalScrollBarPolicy="fill"/>
-                                                </content:TreeBranch>
-                                            </content:TreeBranch>
-                                            <content:TreeBranch text="Progress Indicators"
-                                                icon="@folder.png">
-                                                <explorer:ComponentNode text="Meter"
-                                                    icon="@page_white.png"
-                                                    src="@progress/meter.wtkx"
-                                                    horizontalScrollBarPolicy="auto"
-                                                    verticalScrollBarPolicy="auto"/>
-                                                <explorer:ComponentNode text="ActivityIndicator"
-                                                    icon="@page_white.png"
-                                                    src="@progress/activity_indicator.wtkx"
-                                                    horizontalScrollBarPolicy="auto"
-                                                    verticalScrollBarPolicy="auto"/>
-                                            </content:TreeBranch>
-                                            <content:TreeBranch text="Bounded Range Components"
-                                                icon="@folder.png">
-                                                <explorer:ComponentNode text="ScrollBar"
-                                                    icon="@page_white.png"
-                                                    src="@boundedrange/scroll_bar.wtkx"
-                                                    horizontalScrollBarPolicy="auto"
-                                                    verticalScrollBarPolicy="auto"/>
-                                                <explorer:ComponentNode text="Slider"
-                                                    icon="@page_white.png"
-                                                    src="@boundedrange/slider.wtkx"
-                                                    horizontalScrollBarPolicy="auto"
-                                                    verticalScrollBarPolicy="auto"/>
-                                                <explorer:ComponentNode text="Spinner"
-                                                    icon="@page_white.png"
-                                                    src="@boundedrange/spinner.wtkx"
-                                                    horizontalScrollBarPolicy="auto"
-                                                    verticalScrollBarPolicy="auto"/>
-                                            </content:TreeBranch>
-                                            <content:TreeBranch text="Calendars"
-                                                icon="@folder.png">
-                                                <explorer:ComponentNode text="Calendar"
-                                                    icon="@page_white.png"
-                                                    src="@calendars/calendar.wtkx"
-                                                    horizontalScrollBarPolicy="auto"
-                                                    verticalScrollBarPolicy="auto"/>
-                                                <explorer:ComponentNode text="CalendarButton"
-                                                    icon="@page_white.png"
-                                                    src="@calendars/calendar_button.wtkx"
-                                                    horizontalScrollBarPolicy="auto"
-                                                    verticalScrollBarPolicy="auto"/>
-                                            </content:TreeBranch>
-                                            <content:TreeBranch text="Color Choosers"
-                                                icon="@folder.png">
-                                                <explorer:ComponentNode text="ColorChooser"
-                                                    icon="@page_white.png"
-                                                    src="@colorchoosers/color_chooser.wtkx"
-                                                    horizontalScrollBarPolicy="auto"
-                                                    verticalScrollBarPolicy="auto"/>
-                                                <explorer:ComponentNode text="ColorChooserButton"
-                                                    icon="@page_white.png"
-                                                    src="@colorchoosers/color_chooser_button.wtkx"
-                                                    horizontalScrollBarPolicy="auto"
-                                                    verticalScrollBarPolicy="auto"/>
-                                            </content:TreeBranch>
-                                            <content:TreeBranch text="Menus"
-                                                icon="@folder.png">
-                                                <explorer:ComponentNode text="MenuBar"
-                                                    icon="@page_white.png"
-                                                    src="@menus/menu_bar.wtkx"
-                                                    horizontalScrollBarPolicy="auto"
-                                                    verticalScrollBarPolicy="auto"/>
-                                                <explorer:ComponentNode text="MenuButton"
-                                                    icon="@page_white.png"
-                                                    src="@menus/menu_button.wtkx"
-                                                    horizontalScrollBarPolicy="auto"
-                                                    verticalScrollBarPolicy="auto"/>
-                                            </content:TreeBranch>
-                                            <content:TreeBranch text="Tables"
-                                                icon="@folder.png">
-                                            </content:TreeBranch>
-                                            <content:TreeBranch text="Trees"
-                                                icon="@folder.png">
-                                                <explorer:ComponentNode text="TreeView"
-                                                    icon="@page_white.png"
-                                                    src="@trees/tree_view.wtkx"
-                                                    horizontalScrollBarPolicy="fill_to_capacity"
-                                                    verticalScrollBarPolicy="auto"/>
-                                            </content:TreeBranch>
-                                        </content:TreeBranch>
-                                    </treeData>
-                                </TreeView>
-                            </view>
-                        </ScrollPane>
-                    </content>
-                </Border>
-            </left>
-            <right>
-                <SplitPane orientation="vertical" splitRatio="0.6">
-                    <top>
-                        <TablePane styles="{horizontalSpacing:6}">
-                            <columns>
-                                <TablePane.Column width="1*"/>
-                                <TablePane.Column/>
-                            </columns>
-                            <rows>
-                                <TablePane.Row height="1*">
-                                    <Border>
-                                        <content>
-                                            <ScrollPane wtkx:id="scrollPane">
-                                                <view>
-                                                    <Border wtkx:id="contentPane"
-                                                        styles="{thickness:0, padding:6}"/>
-                                                </view>
-                                            </ScrollPane>
-                                        </content>
-                                    </Border>
-                                    <TabPane wtkx:id="inspectorTabPane"
-                                        styles="{collapsible:true, tabOrientation:'vertical'}">
+        <CardPane styles="{padding:3}">
+            <SplitPane orientation="horizontal" splitRatio="0.25">
+                <left>
+                    <TabPane>
+                        <tabs>
+                            <Border TabPane.label="Component Explorer">
+                                <content>
+                                    <ScrollPane horizontalScrollBarPolicy="fill_to_capacity">
+                                        <view>
+                                            <TreeView wtkx:id="treeView">
+                                                <nodeRenderer>
+                                                    <content:TreeViewNodeRenderer
+                                                        styles="{padding:1}"/>
+                                                </nodeRenderer>
+                                                <treeData>
+                                                    <content:TreeBranch>
+                                                        <content:TreeBranch text="Buttons"
+                                                            icon="@folder.png">
+                                                            <explorer:ComponentNode
+                                                                text="PushButton"
+                                                                icon="@page_white.png"
+                                                                src="@buttons/push_button.wtkx"
+                                                                horizontalScrollBarPolicy="auto"
+                                                                verticalScrollBarPolicy="auto"/>
+                                                            <explorer:ComponentNode
+                                                                text="RadioButton"
+                                                                icon="@page_white.png"
+                                                                src="@buttons/radio_button.wtkx"
+                                                                horizontalScrollBarPolicy="auto"
+                                                                verticalScrollBarPolicy="auto"/>
+                                                            <explorer:ComponentNode
+                                                                text="Checkbox"
+                                                                icon="@page_white.png"
+                                                                src="@buttons/checkbox.wtkx"
+                                                                horizontalScrollBarPolicy="auto"
+                                                                verticalScrollBarPolicy="auto"/>
+                                                            <explorer:ComponentNode
+                                                                text="LinkButton"
+                                                                icon="@page_white.png"
+                                                                src="@buttons/link_button.wtkx"
+                                                                horizontalScrollBarPolicy="auto"
+                                                                verticalScrollBarPolicy="auto"/>
+                                                        </content:TreeBranch>
+                                                        <content:TreeBranch text="Lists"
+                                                            icon="@folder.png">
+                                                            <explorer:ComponentNode
+                                                                text="ListView"
+                                                                icon="@page_white.png"
+                                                                src="@lists/list_view.wtkx"
+                                                                horizontalScrollBarPolicy="fill_to_capacity"
+                                                                verticalScrollBarPolicy="auto"/>
+                                                            <explorer:ComponentNode
+                                                                text="ListButton"
+                                                                icon="@page_white.png"
+                                                                src="@lists/list_button.wtkx"
+                                                                horizontalScrollBarPolicy="auto"
+                                                                verticalScrollBarPolicy="auto"/>
+                                                        </content:TreeBranch>
+                                                        <content:TreeBranch text="Text"
+                                                            icon="@folder.png">
+                                                            <explorer:ComponentNode
+                                                                text="TextInput"
+                                                                icon="@page_white.png"
+                                                                src="@text/text_input.wtkx"
+                                                                horizontalScrollBarPolicy="auto"
+                                                                verticalScrollBarPolicy="auto"/>
+                                                            <explorer:ComponentNode
+                                                                text="TextArea"
+                                                                icon="@page_white.png"
+                                                                src="@text/text_area.wtkx"
+                                                                horizontalScrollBarPolicy="fill"
+                                                                verticalScrollBarPolicy="fill_to_capacity"/>
+                                                        </content:TreeBranch>
+                                                        <content:TreeBranch text="Layout Containers"
+                                                            icon="@folder.png">
+                                                            <explorer:ComponentNode
+                                                                text="FlowPane"
+                                                                icon="@page_white.png"
+                                                                src="@layout/flow_pane.wtkx"
+                                                                horizontalScrollBarPolicy="fill"
+                                                                verticalScrollBarPolicy="fill"/>
+                                                            <explorer:ComponentNode
+                                                                text="BoxPane"
+                                                                icon="@page_white.png"
+                                                                src="@layout/box_pane.wtkx"
+                                                                horizontalScrollBarPolicy="fill"
+                                                                verticalScrollBarPolicy="fill"/>
+                                                            <explorer:ComponentNode
+                                                                text="TablePane"
+                                                                icon="@page_white.png"
+                                                                src="@layout/table_pane.wtkx"
+                                                                horizontalScrollBarPolicy="fill"
+                                                                verticalScrollBarPolicy="fill"/>
+                                                            <explorer:ComponentNode
+                                                                text="Border"
+                                                                icon="@page_white.png"
+                                                                src="@layout/border.wtkx"
+                                                                horizontalScrollBarPolicy="fill"
+                                                                verticalScrollBarPolicy="fill"/>
+                                                            <explorer:ComponentNode
+                                                                text="StackPane"
+                                                                icon="@page_white.png"
+                                                                src="@layout/stack_pane.wtkx"
+                                                                horizontalScrollBarPolicy="fill"
+                                                                verticalScrollBarPolicy="fill"/>
+                                                            <explorer:ComponentNode
+                                                                text="SplitPane"
+                                                                icon="@page_white.png"
+                                                                src="@layout/split_pane.wtkx"
+                                                                horizontalScrollBarPolicy="fill"
+                                                                verticalScrollBarPolicy="fill"/>
+                                                            <explorer:ComponentNode
+                                                                text="Form"
+                                                                icon="@page_white.png"
+                                                                src="@layout/form.wtkx"
+                                                                horizontalScrollBarPolicy="fill"
+                                                                verticalScrollBarPolicy="auto"/>
+                                                            <explorer:ComponentNode
+                                                                text="Panel"
+                                                                icon="@page_white.png"
+                                                                src="@layout/panel.wtkx"
+                                                                horizontalScrollBarPolicy="fill"
+                                                                verticalScrollBarPolicy="fill"/>
+                                                        </content:TreeBranch>
+                                                        <content:TreeBranch
+                                                            text="Navigation Containers"
+                                                            icon="@folder.png">
+                                                            <explorer:ComponentNode
+                                                                text="CardPane"
+                                                                icon="@page_white.png"
+                                                                src="@navigation/card_pane.wtkx"
+                                                                horizontalScrollBarPolicy="fill"
+                                                                verticalScrollBarPolicy="fill"/>
+                                                            <explorer:ComponentNode
+                                                                text="TabPane"
+                                                                icon="@page_white.png"
+                                                                src="@navigation/tab_pane.wtkx"
+                                                                horizontalScrollBarPolicy="auto"
+                                                                verticalScrollBarPolicy="auto"/>
+                                                            <explorer:ComponentNode
+                                                                text="Accordion"
+                                                                icon="@page_white.png"
+                                                                src="@navigation/accordion.wtkx"
+                                                                horizontalScrollBarPolicy="auto"
+                                                                verticalScrollBarPolicy="auto"/>
+                                                            <explorer:ComponentNode
+                                                                text="Expander"
+                                                                icon="@page_white.png"
+                                                                src="@navigation/expander.wtkx"
+                                                                horizontalScrollBarPolicy="auto"
+                                                                verticalScrollBarPolicy="auto"/>
+                                                            <explorer:ComponentNode
+                                                                text="Rollup"
+                                                                icon="@page_white.png"
+                                                                src="@navigation/rollup.wtkx"
+                                                                horizontalScrollBarPolicy="auto"
+                                                                verticalScrollBarPolicy="auto"/>
+                                                            <content:TreeBranch
+                                                                text="Viewports"
+                                                                icon="@folder.png">
+                                                                <explorer:ComponentNode
+                                                                    text="ScrollPane"
+                                                                    icon="@page_white.png"
+                                                                    src="@navigation/scroll_pane.wtkx"
+                                                                    horizontalScrollBarPolicy="fill"
+                                                                    verticalScrollBarPolicy="fill"/>
+                                                                <explorer:ComponentNode
+                                                                    text="Panorama"
+                                                                    icon="@page_white.png"
+                                                                    src="@navigation/panorama.wtkx"
+                                                                    horizontalScrollBarPolicy="fill"
+                                                                    verticalScrollBarPolicy="fill"/>
+                                                            </content:TreeBranch>
+                                                        </content:TreeBranch>
+                                                        <content:TreeBranch
+                                                            text="Progress Indicators"
+                                                            icon="@folder.png">
+                                                            <explorer:ComponentNode
+                                                                text="Meter"
+                                                                icon="@page_white.png"
+                                                                src="@progress/meter.wtkx"
+                                                                horizontalScrollBarPolicy="auto"
+                                                                verticalScrollBarPolicy="auto"/>
+                                                            <explorer:ComponentNode
+                                                                text="ActivityIndicator"
+                                                                icon="@page_white.png"
+                                                                src="@progress/activity_indicator.wtkx"
+                                                                horizontalScrollBarPolicy="auto"
+                                                                verticalScrollBarPolicy="auto"/>
+                                                        </content:TreeBranch>
+                                                        <content:TreeBranch
+                                                            text="Bounded Range Components"
+                                                            icon="@folder.png">
+                                                            <explorer:ComponentNode
+                                                                text="ScrollBar"
+                                                                icon="@page_white.png"
+                                                                src="@boundedrange/scroll_bar.wtkx"
+                                                                horizontalScrollBarPolicy="auto"
+                                                                verticalScrollBarPolicy="auto"/>
+                                                            <explorer:ComponentNode
+                                                                text="Slider"
+                                                                icon="@page_white.png"
+                                                                src="@boundedrange/slider.wtkx"
+                                                                horizontalScrollBarPolicy="auto"
+                                                                verticalScrollBarPolicy="auto"/>
+                                                            <explorer:ComponentNode
+                                                                text="Spinner"
+                                                                icon="@page_white.png"
+                                                                src="@boundedrange/spinner.wtkx"
+                                                                horizontalScrollBarPolicy="auto"
+                                                                verticalScrollBarPolicy="auto"/>
+                                                        </content:TreeBranch>
+                                                        <content:TreeBranch
+                                                            text="Calendars"
+                                                            icon="@folder.png">
+                                                            <explorer:ComponentNode
+                                                                text="Calendar"
+                                                                icon="@page_white.png"
+                                                                src="@calendars/calendar.wtkx"
+                                                                horizontalScrollBarPolicy="auto"
+                                                                verticalScrollBarPolicy="auto"/>
+                                                            <explorer:ComponentNode
+                                                                text="CalendarButton"
+                                                                icon="@page_white.png"
+                                                                src="@calendars/calendar_button.wtkx"
+                                                                horizontalScrollBarPolicy="auto"
+                                                                verticalScrollBarPolicy="auto"/>
+                                                        </content:TreeBranch>
+                                                        <content:TreeBranch
+                                                            text="Color Choosers"
+                                                            icon="@folder.png">
+                                                            <explorer:ComponentNode
+                                                                text="ColorChooser"
+                                                                icon="@page_white.png"
+                                                                src="@colorchoosers/color_chooser.wtkx"
+                                                                horizontalScrollBarPolicy="auto"
+                                                                verticalScrollBarPolicy="auto"/>
+                                                            <explorer:ComponentNode
+                                                                text="ColorChooserButton"
+                                                                icon="@page_white.png"
+                                                                src="@colorchoosers/color_chooser_button.wtkx"
+                                                                horizontalScrollBarPolicy="auto"
+                                                                verticalScrollBarPolicy="auto"/>
+                                                        </content:TreeBranch>
+                                                        <content:TreeBranch
+                                                            text="Menus"
+                                                            icon="@folder.png">
+                                                            <explorer:ComponentNode
+                                                                text="MenuBar"
+                                                                icon="@page_white.png"
+                                                                src="@menus/menu_bar.wtkx"
+                                                                horizontalScrollBarPolicy="auto"
+                                                                verticalScrollBarPolicy="auto"/>
+                                                            <explorer:ComponentNode
+                                                                text="MenuButton"
+                                                                icon="@page_white.png"
+                                                                src="@menus/menu_button.wtkx"
+                                                                horizontalScrollBarPolicy="auto"
+                                                                verticalScrollBarPolicy="auto"/>
+                                                        </content:TreeBranch>
+                                                        <content:TreeBranch
+                                                            text="Tables"
+                                                            icon="@folder.png">
+                                                        </content:TreeBranch>
+                                                        <content:TreeBranch
+                                                            text="Trees"
+                                                            icon="@folder.png">
+                                                            <explorer:ComponentNode
+                                                                text="TreeView"
+                                                                icon="@page_white.png"
+                                                                src="@trees/tree_view.wtkx"
+                                                                horizontalScrollBarPolicy="fill_to_capacity"
+                                                                verticalScrollBarPolicy="auto"/>
+                                                        </content:TreeBranch>
+                                                    </content:TreeBranch>
+                                                </treeData>
+                                            </TreeView>
+                                        </view>
+                                    </ScrollPane>
+                                </content>
+                            </Border>
+                        </tabs>
+                    </TabPane>
+                </left>
+                <right>
+                    <SplitPane orientation="vertical" splitRatio="0.6">
+                        <top>
+                            <SplitPane orientation="horizontal" splitRatio="0.6">
+                                <left>
+                                    <TabPane wtkx:id="contentTabPane">
+                                        <corner>
+                                            <BoxPane styles="{padding:{right:6},
+                                                horizontalAlignment:'right', fill:true}">
+                                                <MenuButton styles="{toolbar:true}">
+                                                    <wtkx:define>
+                                                        <ButtonGroup wtkx:id="horizontalScrollBarPolicyGroup"/>
+                                                        <ButtonGroup wtkx:id="verticalScrollBarPolicyGroup"/>
+                                                    </wtkx:define>
+                                                    <menu>
+                                                        <Menu>
+                                                            <sections>
+                                                                <Menu.Section>
+                                                                    <Menu.Item buttonData="Horizontal Scroll Bar Policy">
+                                                                        <menu>
+                                                                            <Menu>
+                                                                                <sections>
+                                                                                    <Menu.Section>
+                                                                                        <Menu.Item wtkx:id="horizontalAutoButton"
+                                                                                            toggleButton="true"
+                                                                                            buttonGroup="$horizontalScrollBarPolicyGroup"
+                                                                                            buttonData="Auto"/>
+                                                                                        <Menu.Item wtkx:id="horizontalFillButton"
+                                                                                            toggleButton="true"
+                                                                                            buttonGroup="$horizontalScrollBarPolicyGroup"
+                                                                                            buttonData="Fill"/>
+                                                                                        <Menu.Item wtkx:id="horizontalFillToCapacityButton"
+                                                                                            toggleButton="true"
+                                                                                            buttonGroup="$horizontalScrollBarPolicyGroup"
+                                                                                            buttonData="Fill To Capacity"/>
+                                                                                        <Menu.Item wtkx:id="horizontalNeverButton"
+                                                                                            toggleButton="true"
+                                                                                            buttonGroup="$horizontalScrollBarPolicyGroup"
+                                                                                            buttonData="Never"/>
+                                                                                    </Menu.Section>
+                                                                                </sections>
+                                                                            </Menu>
+                                                                        </menu>
+                                                                    </Menu.Item>
+                                                                    <Menu.Item buttonData="Vertical Scroll Bar Policy">
+                                                                        <menu>
+                                                                            <Menu>
+                                                                                <sections>
+                                                                                    <Menu.Section>
+                                                                                        <Menu.Item wtkx:id="verticalAutoButton"
+                                                                                            toggleButton="true"
+                                                                                            buttonGroup="$verticalScrollBarPolicyGroup"
+                                                                                            buttonData="Auto"/>
+                                                                                        <Menu.Item wtkx:id="verticalFillButton"
+                                                                                            toggleButton="true"
+                                                                                            buttonGroup="$verticalScrollBarPolicyGroup"
+                                                                                            buttonData="Fill"/>
+                                                                                        <Menu.Item wtkx:id="verticalFillToCapacityButton"
+                                                                                            toggleButton="true"
+                                                                                            buttonGroup="$verticalScrollBarPolicyGroup"
+                                                                                            buttonData="Fill To Capacity"/>
+                                                                                        <Menu.Item wtkx:id="verticalNeverButton"
+                                                                                            toggleButton="true"
+                                                                                            buttonGroup="$verticalScrollBarPolicyGroup"
+                                                                                            buttonData="Never"/>
+                                                                                    </Menu.Section>
+                                                                                </sections>
+                                                                            </Menu>
+                                                                        </menu>
+                                                                    </Menu.Item>
+                                                                </Menu.Section>
+                                                            </sections>
+                                                        </Menu>
+                                                    </menu>
+                                                </MenuButton>
+                                            </BoxPane>
+                                        </corner>
+                                    </TabPane>
+                                </left>
+                                <right>
+                                    <TabPane wtkx:id="inspectorTabPane">
                                         <tabs>
                                             <Border TabPane.label="%properties">
                                                 <content>
@@ -306,26 +415,37 @@
                                             </Border>
                                         </tabs>
                                     </TabPane>
-                                </TablePane.Row>
-                            </rows>
-                        </TablePane>
-                    </top>
-                    <bottom>
-                        <Border>
-                            <content>
-                                <ScrollPane horizontalScrollBarPolicy="fill"
-                                    verticalScrollBarPolicy="fill">
-                                    <view>
-                                        <CardPane styles="{padding:10}">
-                                            <tools:EventLogger wtkx:id="eventLogger"/>
-                                        </CardPane>
-                                    </view>
-                                </ScrollPane>
-                            </content>
-                        </Border>
-                    </bottom>
-                </SplitPane>
-            </right>
-        </SplitPane>
+                                </right>
+                            </SplitPane>
+                        </top>
+                        <bottom>
+                            <TabPane>
+                                <tabs>
+                                    <tools:EventLogger wtkx:id="eventLogger"
+                                        TabPane.label="Event Log"/>
+                                </tabs>
+                                <corner>
+                                    <BoxPane styles="{padding:{right:6},
+                                        horizontalAlignment:'right', fill:true}">
+                                        <MenuButton styles="{toolbar:true}">
+                                            <menu>
+                                                <Menu>
+                                                    <sections>
+                                                        <Menu.Section>
+                                                            <Menu.Item buttonData="Clear Event Log"
+                                                                ButtonPressListener.buttonPressed="eventLogger.clearLog();"/>
+                                                        </Menu.Section>
+                                                    </sections>
+                                                </Menu>
+                                            </menu>
+                                        </MenuButton>
+                                    </BoxPane>
+                                </corner>
+                            </TabPane>
+                        </bottom>
+                    </SplitPane>
+                </right>
+            </SplitPane>
+        </CardPane>
     </content>
 </Window>

Modified: incubator/pivot/trunk/tools/src/org/apache/pivot/tools/wtk/EventLogger.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/tools/src/org/apache/pivot/tools/wtk/EventLogger.java?rev=831909&r1=831908&r2=831909&view=diff
==============================================================================
--- incubator/pivot/trunk/tools/src/org/apache/pivot/tools/wtk/EventLogger.java (original)
+++ incubator/pivot/trunk/tools/src/org/apache/pivot/tools/wtk/EventLogger.java Mon Nov  2 14:59:53 2009
@@ -43,6 +43,16 @@
  */
 public class EventLogger extends Container {
     /**
+     * Event logger skin interface. Event logger skins must implement this.
+     */
+    public interface Skin {
+        /**
+         * Clears the event log.
+         */
+        public void clearLog();
+    }
+
+    /**
      * Declared event sequence.
      */
     public final class DeclaredEventSequence implements Sequence<Method>, Iterable<Method> {
@@ -301,6 +311,14 @@
         return includeEventGroup;
     }
 
+    /**
+     * Clears the event log.
+     */
+    public void clearLog() {
+        EventLogger.Skin eventLoggerSkin = (EventLogger.Skin)getSkin();
+        eventLoggerSkin.clearLog();
+    }
+
     private void registerEventListeners() {
         Method[] methods = source.getClass().getMethods();
 

Modified: incubator/pivot/trunk/tools/src/org/apache/pivot/tools/wtk/EventLoggerSkin.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/tools/src/org/apache/pivot/tools/wtk/EventLoggerSkin.java?rev=831909&r1=831908&r2=831909&view=diff
==============================================================================
--- incubator/pivot/trunk/tools/src/org/apache/pivot/tools/wtk/EventLoggerSkin.java (original)
+++ incubator/pivot/trunk/tools/src/org/apache/pivot/tools/wtk/EventLoggerSkin.java Mon Nov  2 14:59:53 2009
@@ -41,7 +41,7 @@
 import org.apache.pivot.wtkx.WTKX;
 import org.apache.pivot.wtkx.WTKXSerializer;
 
-class EventLoggerSkin extends ContainerSkin implements EventLoggerListener {
+class EventLoggerSkin extends ContainerSkin implements EventLogger.Skin, EventLoggerListener {
     private static class TreeNodeComparator implements Comparator<TreeNode> {
         public int compare(TreeNode treeNode1, TreeNode treeNode2) {
             return treeNode1.getText().compareTo(treeNode2.getText());
@@ -211,13 +211,22 @@
         content.setSize(getWidth(), getHeight());
     }
 
+    // EventLogger.Skin methods
+
+    @Override
+    public void clearLog() {
+        firedEventsTableView.getTableData().clear();
+    }
+
+    // EventLoggerListener methods
+
     @Override
     public void sourceChanged(EventLogger eventLogger, Component previousSource) {
+        clearLog();
+
         HashMap<Class<?>, ArrayList<Method>> buckets = new HashMap<Class<?>, ArrayList<Method>>();
 
-        Sequence<Method> declaredEvents = eventLogger.getDeclaredEvents();
-        for (int i = 0, n = declaredEvents.getLength(); i < n; i++) {
-            Method event = declaredEvents.get(i);
+        for (Method event : eventLogger.getDeclaredEvents()) {
             Class<?> listenerInterface = event.getDeclaringClass();
 
             ArrayList<Method> bucket = buckets.get(listenerInterface);

Modified: incubator/pivot/trunk/tools/src/org/apache/pivot/tools/wtk/event_logger_skin.wtkx
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/tools/src/org/apache/pivot/tools/wtk/event_logger_skin.wtkx?rev=831909&r1=831908&r2=831909&view=diff
==============================================================================
--- incubator/pivot/trunk/tools/src/org/apache/pivot/tools/wtk/event_logger_skin.wtkx (original)
+++ incubator/pivot/trunk/tools/src/org/apache/pivot/tools/wtk/event_logger_skin.wtkx Mon Nov  2 14:59:53 2009
@@ -16,59 +16,50 @@
 limitations under the License.
 -->
 
-<TablePane
+<SplitPane orientation="horizontal" splitRatio="0.25"
     xmlns:wtkx="http://pivot.apache.org/wtkx"
     xmlns:content="org.apache.pivot.wtk.content"
     xmlns="org.apache.pivot.wtk">
-    <columns>
-        <TablePane.Column width="1*"/>
-    </columns>
-    <rows>
-        <TablePane.Row>
-            <FlowPane TablePane.columnSpan="2" styles="{padding:6, alignToBaseline:true}">
-                <PushButton buttonData="%clearEvents"
-                    ButtonPressListener.buttonPressed="firedEventsTableView.getTableData().clear()"/>
-            </FlowPane>
-        </TablePane.Row>
-        <TablePane.Row height="1*">
-            <SplitPane orientation="horizontal" splitRatio="0.25">
-                <left>
-                    <Border>
-                        <content>
-                            <ScrollPane horizontalScrollBarPolicy="fill_to_capacity">
-                                <view>
-                                    <TreeView wtkx:id="declaredEventsTreeView"
-                                        checkmarksEnabled="true"
-                                        showMixedCheckmarkState="true"
-                                        selectMode="none">
-                                        <nodeRenderer>
-                                            <content:TreeViewNodeRenderer showIcon="false"/>
-                                        </nodeRenderer>
-                                    </TreeView>
-                                </view>
-                            </ScrollPane>
-                        </content>
-                    </Border>
-                </left>
-                <right>
-                    <Border>
-                        <content>
-                            <ScrollPane horizontalScrollBarPolicy="fill_to_capacity">
-                                <view>
-                                    <TableView wtkx:id="firedEventsTableView" selectMode="none">
-                                        <columns>
-                                            <TableView.Column name="interface" width="175" />
-                                            <TableView.Column name="method" width="200" />
-                                            <TableView.Column name="arguments" width="1*"
-                                                minimumWidth="200"/>
-                                        </columns>
-                                    </TableView>
-                                </view>
-                            </ScrollPane>
-                        </content>
-                    </Border>
-                </right>
-            </SplitPane>
-        </TablePane.Row>
-    </rows>
-</TablePane>
+    <left>
+        <Border>
+            <content>
+                <ScrollPane horizontalScrollBarPolicy="fill_to_capacity">
+                    <view>
+                        <TreeView wtkx:id="declaredEventsTreeView"
+                            checkmarksEnabled="true"
+                            showMixedCheckmarkState="true"
+                            selectMode="none">
+                            <nodeRenderer>
+                                <content:TreeViewNodeRenderer showIcon="false"/>
+                            </nodeRenderer>
+                        </TreeView>
+                    </view>
+                </ScrollPane>
+            </content>
+        </Border>
+    </left>
+    <right>
+        <Border>
+            <content>
+                <ScrollPane horizontalScrollBarPolicy="fill_to_capacity">
+                    <view>
+                        <TableView wtkx:id="firedEventsTableView" selectMode="none">
+                            <columns>
+                                <TableView.Column name="interface" width="175"
+                                    headerData="Declaring Class"/>
+                                <TableView.Column name="method" width="200"
+                                    headerData="Event"/>
+                                <TableView.Column name="arguments" width="1*"
+                                    headerData="Arguments" minimumWidth="200"/>
+                            </columns>
+                        </TableView>
+                    </view>
+                    <columnHeader>
+                        <TableViewHeader tableView="$firedEventsTableView"
+                            sortMode="none" styles="{headersPressable:false}"/>
+                    </columnHeader>
+                </ScrollPane>
+            </content>
+        </Border>
+    </right>
+</SplitPane>