public class XmlTreeModel implements TreeModel { static Logger T = Logger.getLogger(XmlTreeModel.class); private Element _root; public XmlTreeModel(Document doc) { _root = doc.getRootElement(); } @Override public Object getRoot() { return _root; } @Override public Object getChild(Object parent, int index) { Element el = (Element) parent; List children = el.getChildren(); return children.get(index); } @Override public int getChildCount(Object parent) { Element el = (Element) parent; List children = el.getChildren(); return children.size(); } @Override public boolean isLeaf(Object parent) { Element el = (Element) parent; List children = el.getChildren(); return children.size() == 0; } @Override public int getIndexOfChild(Object parent, Object child) { Element el = (Element) parent; List children = el.getChildren(); return children.indexOf(child); } @Override public void valueForPathChanged(TreePath path, Object newValue) { // only needed if you edit/change tree nodes in Jtree itself which we // don't do/support } EventListenerList _listener = new EventListenerList(); @Override public void addTreeModelListener(TreeModelListener l) { _listener.add(TreeModelListener.class, l); } @Override public void removeTreeModelListener(TreeModelListener l) { _listener.remove(TreeModelListener.class, l); } }
public class TextAreaDef extends XulTag implements NComponentFactory { public static final XulTagFactory FACTORY = new XulTagFactory() { public XulTag createXulTag(Element element) { return new TextAreaDef(element); } }; static Logger T = Logger.getLogger(TextAreaDef.class); public TextAreaDef(Element element) { super(element); } public NComponent createNComponent(JComponentResolver resolver, XulContext ctx) { return new XTextArea(this, ctx); } }
public class HintPublisher { static Logger T = Logger.getLogger(HintPublisher.class); private static HintPublisher _publisher; private MouseListener _buttonMouseListener; private MenuItemListener _menuItemListener; private MenuListener _menuListener; private JLabel _subscriber; private HintPublisher() {} public static HintPublisher getHintPublisher() { if (_publisher == null) _publisher = new HintPublisher(); return _publisher; } public void addButton(AbstractButton button) { if (_buttonMouseListener == null) { _buttonMouseListener = new MouseListener() { public void mouseClicked(MouseEvent ev) {} public void mouseEntered(MouseEvent ev) { onButtonEntered((AbstractButton) ev.getSource()); } public void mouseExited(MouseEvent ev) { onButtonExited((AbstractButton) ev.getSource()); } public void mousePressed(MouseEvent ev) {} public void mouseReleased(MouseEvent ev) {} }; } button.addMouseListener(_buttonMouseListener); } public void addMenu(JMenu menu) { if (_menuListener == null) { _menuListener = new MenuListener() { public void menuCanceled(MenuEvent ev) { onMenuCanceled((JMenu) ev.getSource()); } public void menuDeselected(MenuEvent ev) { onMenuDeselected((JMenu) ev.getSource()); } public void menuSelected(MenuEvent ev) { onMenuSelected((JMenu) ev.getSource()); } }; } menu.addMenuListener(_menuListener); } public void addMenuItem(MenuItemSource mi) { if (_menuItemListener == null) { _menuItemListener = new MenuItemListener() { public void menuItemDeselected(MenuItemEvent ev) { onMenuItemDeselected((JMenuItem) ev.getSource()); } public void menuItemSelected(MenuItemEvent ev) { onMenuItemSelected((JMenuItem) ev.getSource()); } }; } mi.addMenuItemListener(_menuItemListener); } public void onButtonEntered(AbstractButton button) { T.debug("onButtonEntered()"); } public void onButtonExited(AbstractButton button) { T.debug("onButtonExited()"); } public void onMenuCanceled(JMenu menu) { T.debug("onMenuCanceled()"); } public void onMenuDeselected(JMenu menu) { T.debug("onMenuDeselected()"); } public void onMenuItemDeselected(JMenuItem mi) { publish(" "); T.debug("onMenuItemDeselected()"); } public void onMenuItemSelected(JMenuItem mi) { publish("text: " + mi.getText() + ", tooltip: " + mi.getToolTipText()); T.debug("onMenuItemSelected()"); } public void onMenuSelected(JMenu menu) { T.debug("onMenuSelected()"); } public void subscribe(JLabel subscriber) { // todo: use interface to allow many subscribers _subscriber = subscriber; } private void publish(String msg) { if (_subscriber != null) _subscriber.setText(msg); } }