r1545 - in trunk: jaxx-example/src/main/java/jaxx/demo jaxx-runtime-swing/src/main/java/jaxx/runtime/swing
Author: sletellier Date: 2009-10-02 11:28:22 +0200 (Fri, 02 Oct 2009) New Revision: 1545 Modified: trunk/jaxx-example/src/main/java/jaxx/demo/ExempleItemTreeNavigationAdapter.java trunk/jaxx-example/src/main/java/jaxx/demo/ItemTreeNavigationDemo.jaxx trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/swing/JAXXComboBox.java trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/swing/JAXXList.java Log: Beans can be updated in ItemTreeNavigationDemo Modified: trunk/jaxx-example/src/main/java/jaxx/demo/ExempleItemTreeNavigationAdapter.java =================================================================== --- trunk/jaxx-example/src/main/java/jaxx/demo/ExempleItemTreeNavigationAdapter.java 2009-10-01 20:54:16 UTC (rev 1544) +++ trunk/jaxx-example/src/main/java/jaxx/demo/ExempleItemTreeNavigationAdapter.java 2009-10-02 09:28:22 UTC (rev 1545) @@ -1,8 +1,12 @@ package jaxx.demo; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; import java.util.Date; import jaxx.runtime.JAXXObject; +import jaxx.runtime.swing.Item; import jaxx.runtime.swing.JAXXTree; +import jaxx.runtime.swing.JAXXTree.JAXXTreeModel; import jaxx.runtime.swing.navigation.ItemNavigationCardPanel; import jaxx.runtime.swing.navigation.ItemTreeNavigationAdapter; @@ -12,13 +16,37 @@ */ public class ExempleItemTreeNavigationAdapter extends ItemTreeNavigationAdapter{ + Item currentItem = null; + public ExempleItemTreeNavigationAdapter(JAXXObject context, JAXXTree tree, ItemNavigationCardPanel cardPanel){ super(context, tree, cardPanel); + + ItemTreeNavigationDemo demo = (ItemTreeNavigationDemo)context; + demo.addPropertyChangeListener("date", new PropertyChangeListener() { + + @Override + public void propertyChange(PropertyChangeEvent evt) { + if (currentItem != null && !(currentItem.getValue() instanceof Class)){ + currentItem.setValue((Date)evt.getNewValue()); + } + } + }); + + demo.addPropertyChangeListener("string", new PropertyChangeListener() { + + @Override + public void propertyChange(PropertyChangeEvent evt) { + if (currentItem != null && !(currentItem.getValue() instanceof Class)){ + currentItem.setValue((String)evt.getNewValue()); + } + } + }); } @Override protected void valueChanged(Object data) { ItemTreeNavigationDemo demo = (ItemTreeNavigationDemo)context; + currentItem = ((JAXXTreeModel)tree.getModel()).findItem(data); if (data instanceof String){ demo.setString((String)data); } else if (data instanceof Date){ Modified: trunk/jaxx-example/src/main/java/jaxx/demo/ItemTreeNavigationDemo.jaxx =================================================================== --- trunk/jaxx-example/src/main/java/jaxx/demo/ItemTreeNavigationDemo.jaxx 2009-10-01 20:54:16 UTC (rev 1544) +++ trunk/jaxx-example/src/main/java/jaxx/demo/ItemTreeNavigationDemo.jaxx 2009-10-02 09:28:22 UTC (rev 1545) @@ -30,10 +30,10 @@ <ItemNavigationCardPanel id="content"> <!-- The associated type is passed by the constructor --> <ItemNavigationPanel id='stringPanel' constructorParams='String.class' layout='{new FlowLayout()}'> - <JTextField text='{getString()}'/> + <JTextField id='stringTextField' text='{getString()}' onKeyReleased='setString(stringTextField.getText())'/> </ItemNavigationPanel> <ItemNavigationPanel id='datePanel' constructorParams='Date.class' layout='{new FlowLayout()}'> - <JXDatePicker date='{getDate()}'/> + <JXDatePicker id='datePicker' date='{getDate()}' onActionPerformed='setDate(datePicker.getDate())'/> </ItemNavigationPanel> </ItemNavigationCardPanel> </JSplitPane> Modified: trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/swing/JAXXComboBox.java =================================================================== --- trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/swing/JAXXComboBox.java 2009-10-01 20:54:16 UTC (rev 1544) +++ trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/swing/JAXXComboBox.java 2009-10-02 09:28:22 UTC (rev 1545) @@ -68,7 +68,9 @@ System.arraycopy(oldSelection, 0, newSelection, 0, index); System.arraycopy(oldSelection, index + 1, newSelection, index, oldSelection.length - 1 - index); } - setSelectedIndex(newSelection[0]); + if (newSelection.length > 0){ + setSelectedIndex(newSelection[0]); + } } else { // TODO: more cut-and-pasting badness for (int i = 0; i < getSize(); i++) { Modified: trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/swing/JAXXList.java =================================================================== --- trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/swing/JAXXList.java 2009-10-01 20:54:16 UTC (rev 1544) +++ trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/swing/JAXXList.java 2009-10-02 09:28:22 UTC (rev 1545) @@ -203,14 +203,16 @@ } public void setSelectedItems(List<Item> itemsToSelect) { - List<Item> items = getItems(); - int[] indices = new int[itemsToSelect.size()]; - int i = 0; - for (Item item : itemsToSelect){ - indices[i] = items.indexOf(item); - i++; + if (itemsToSelect != null){ + List<Item> items = getItems(); + int[] indices = new int[itemsToSelect.size()]; + int i = 0; + for (Item item : itemsToSelect){ + indices[i] = items.indexOf(item); + i++; + } + super.setSelectedIndices(indices); } - super.setSelectedIndices(indices); } public Item getSelectedItem(){
participants (1)
-
sletellier@users.nuiton.org