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/09/16 19:55:35 UTC
svn commit: r815913 - in
/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk: ./ content/ skin/terra/
Author: tvolkert
Date: Wed Sep 16 17:55:34 2009
New Revision: 815913
URL: http://svn.apache.org/viewvc?rev=815913&view=rev
Log:
Preliminary work towards implementing PIVOT-299
Modified:
incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/Editor.java
incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/ListView.java
incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/TableView.java
incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/TreeView.java
incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/content/ListViewItemEditor.java
incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewCellEditor.java
incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewRowEditor.java
incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TreeViewNodeEditor.java
incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraAccordionSkin.java
incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraListViewSkin.java
incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraTableViewSkin.java
incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraTreeViewSkin.java
Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/Editor.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/Editor.java?rev=815913&r1=815912&r2=815913&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/Editor.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/Editor.java Wed Sep 16 17:55:34 2009
@@ -27,15 +27,15 @@
/**
* Saves an edit that is in progress by updating the appropriate data
- * object. It is up to subclasses to define the behavior when
+ * object. It is up to implementations to define the behavior when
* <tt>isEditing() == false</tt>.
*/
- public void save();
+ public void saveChanges();
/**
* Cancels an edit that is in progress by reverting any edits the user has
- * made. It is up to subclasses to define the behavior when
+ * made. It is up to implementations to define the behavior when
* <tt>isEditing() == false</tt>.
*/
- public void cancel();
+ public void cancelEdit();
}
Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/ListView.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/ListView.java?rev=815913&r1=815912&r2=815913&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/ListView.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/ListView.java Wed Sep 16 17:55:34 2009
@@ -28,6 +28,7 @@
import org.apache.pivot.serialization.SerializationException;
import org.apache.pivot.util.Filter;
import org.apache.pivot.util.ListenerList;
+import org.apache.pivot.util.Vote;
import org.apache.pivot.wtk.content.ListViewItemRenderer;
@@ -87,10 +88,81 @@
*/
public interface ItemEditor extends Editor {
/**
+ * Item editor listener list.
+ */
+ public static class ItemEditorListenerList
+ extends ListenerList<ItemEditorListener>
+ implements ItemEditorListener {
+ @Override
+ public Vote previewEditItem(ItemEditor itemEditor, ListView listView,
+ int index) {
+ Vote vote = Vote.APPROVE;
+
+ for (ItemEditorListener listener : this) {
+ vote = vote.tally(listener.previewEditItem(itemEditor,
+ listView, index));
+ }
+
+ return vote;
+ }
+
+ @Override
+ public void editItemVetoed(ItemEditor itemEditor, Vote reason) {
+ for (ItemEditorListener listener : this) {
+ listener.editItemVetoed(itemEditor, reason);
+ }
+ }
+
+ @Override
+ public void itemEditing(ItemEditor itemEditor, ListView listView,
+ int index) {
+ for (ItemEditorListener listener : this) {
+ listener.itemEditing(itemEditor, listView, index);
+ }
+ }
+
+ @Override
+ public Vote previewSaveChanges(ItemEditor itemEditor, ListView listView,
+ int index, Object changes) {
+ Vote vote = Vote.APPROVE;
+
+ for (ItemEditorListener listener : this) {
+ vote = vote.tally(listener.previewSaveChanges(itemEditor,
+ listView, index, changes));
+ }
+
+ return vote;
+ }
+
+ @Override
+ public void saveChangesVetoed(ItemEditor itemEditor, Vote reason) {
+ for (ItemEditorListener listener : this) {
+ listener.saveChangesVetoed(itemEditor, reason);
+ }
+ }
+
+ @Override
+ public void changesSaved(ItemEditor itemEditor, ListView listView,
+ int index) {
+ for (ItemEditorListener listener : this) {
+ listener.changesSaved(itemEditor, listView, index);
+ }
+ }
+
+ @Override
+ public void editCancelled(ItemEditor itemEditor, ListView listView,
+ int index) {
+ for (ItemEditorListener listener : this) {
+ listener.editCancelled(itemEditor, listView, index);
+ }
+ }
+ }
+
+ /**
* Notifies the editor that editing should begin. If the editor is
- * currently installed on the list view, the skin may choose to call
- * this method when the user executes the appropriate gesture (as
- * defined by the skin).
+ * currently installed on the list view, the skin may call this method
+ * when the user executes the appropriate gesture (as defined by the
+ * skin).
*
* @param listView
* The list view
@@ -101,7 +173,156 @@
* @see
* #setItemEditor(ItemEditor)
*/
- public void edit(ListView listView, int index);
+ public void editItem(ListView listView, int index);
+
+ /**
+ * Gets the item editor listener list.
+ */
+ public ListenerList<ItemEditorListener> getItemEditorListeners();
+ }
+
+ /**
+ * The item editor listener interface. This provides callers with
+ * notifications about an item editor's activity.
+ */
+ public interface ItemEditorListener {
+ /**
+ * Item editor listener adapter.
+ */
+ public static class Adapter implements ItemEditorListener {
+ @Override
+ public Vote previewEditItem(ItemEditor itemEditor, ListView listView, int index) {
+ return Vote.APPROVE;
+ }
+
+ @Override
+ public void editItemVetoed(ItemEditor itemEditor, Vote reason) {
+ }
+
+ @Override
+ public void itemEditing(ItemEditor itemEditor, ListView listView, int index) {
+ }
+
+ @Override
+ public Vote previewSaveChanges(ItemEditor itemEditor, ListView listView, int index, Object changes) {
+ return Vote.APPROVE;
+ }
+
+ @Override
+ public void saveChangesVetoed(ItemEditor itemEditor, Vote reason) {
+ }
+
+ @Override
+ public void changesSaved(ItemEditor itemEditor, ListView listView, int index) {
+ }
+
+ @Override
+ public void editCancelled(ItemEditor itemEditor, ListView listView, int index) {
+ }
+ }
+
+ /**
+ * Called to preview an item edit.
+ *
+ * @param itemEditor
+ * The item editor
+ *
+ * @param listView
+ * The list view containing the item to be edited.
+ *
+ * @param index
+ * The index of the item to edit.
+ *
+ * @return
+ * A vote on whether editing should be allowed to begin.
+ */
+ public Vote previewEditItem(ItemEditor itemEditor, ListView listView, int index);
+
+ /**
+ * Called when an item edit was vetoed by a listener in the preview
+ * event.
+ *
+ * @param itemEditor
+ * The item editor
+ *
+ * @param reason
+ * The reason for the veto
+ */
+ public void editItemVetoed(ItemEditor itemEditor, Vote reason);
+
+ /**
+ * Called when editing has begun.
+ *
+ * @param itemEditor
+ * The item editor
+ *
+ * @param listView
+ * The list view containing the item being edited.
+ *
+ * @param index
+ * The index of the item being edited.
+ */
+ public void itemEditing(ItemEditor itemEditor, ListView listView, int index);
+
+ /**
+ * Called to preview a save.
+ *
+ * @param itemEditor
+ * The item editor
+ *
+ * @param listView
+ * The list view containing the item being edited.
+ *
+ * @param index
+ * The index of the item being edited.
+ *
+ * @param changes
+ * The proposed changes. The type of this object will depend on the
+ * editor implementation.
+ *
+ * @return
+ * A vote on whether the changes should be allowed to be saved.
+ */
+ public Vote previewSaveChanges(ItemEditor itemEditor, ListView listView, int index, Object changes);
+
+ /**
+ * Called when a save was vetoed by a listener in the preview event.
+ *
+ * @param itemEditor
+ * The item editor
+ *
+ * @param reason
+ * The reason for the veto
+ */
+ public void saveChangesVetoed(ItemEditor itemEditor, Vote reason);
+
+ /**
+ * Called when changes have been saved.
+ *
+ * @param itemEditor
+ * The item editor
+ *
+ * @param listView
+ * The list view containing the item that was edited.
+ *
+ * @param index
+ * The index of the item that was edited.
+ */
+ public void changesSaved(ItemEditor itemEditor, ListView listView, int index);
+
+ /**
+ * Called when an edit has been cancelled.
+ *
+ * @param itemEditor
+ * The item editor
+ *
+ * @param listView
+ * The list view containing the item that was being edited.
+ *
+ * @param index
+ * The index of the item that was being edited.
+ */
+ public void editCancelled(ItemEditor itemEditor, ListView listView, int index);
}
/**
Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/TableView.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/TableView.java?rev=815913&r1=815912&r2=815913&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/TableView.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/TableView.java Wed Sep 16 17:55:34 2009
@@ -29,6 +29,7 @@
import org.apache.pivot.serialization.SerializationException;
import org.apache.pivot.util.Filter;
import org.apache.pivot.util.ListenerList;
+import org.apache.pivot.util.Vote;
import org.apache.pivot.wtk.content.TableViewCellRenderer;
/**
@@ -429,10 +430,84 @@
*/
public interface RowEditor extends Editor {
/**
+ * Row editor listener list.
+ */
+ public static class RowEditorListenerList
+ extends ListenerList<RowEditorListener>
+ implements RowEditorListener {
+ @Override
+ public Vote previewEditRow(RowEditor rowEditor, TableView tableView,
+ int rowIndex, int columnIndex) {
+ Vote vote = Vote.APPROVE;
+
+ for (RowEditorListener listener : this) {
+ vote = vote.tally(listener.previewEditRow(rowEditor,
+ tableView, rowIndex, columnIndex));
+ }
+
+ return vote;
+ }
+
+ @Override
+ public void editRowVetoed(RowEditor rowEditor, Vote reason) {
+ for (RowEditorListener listener : this) {
+ listener.editRowVetoed(rowEditor, reason);
+ }
+ }
+
+ @Override
+ public void rowEditing(RowEditor rowEditor, TableView tableView,
+ int rowIndex, int columnIndex) {
+ for (RowEditorListener listener : this) {
+ listener.rowEditing(rowEditor, tableView, rowIndex,
+ columnIndex);
+ }
+ }
+
+ @Override
+ public Vote previewSaveChanges(RowEditor rowEditor, TableView tableView,
+ int rowIndex, int columnIndex, Dictionary<String, Object> changes) {
+ Vote vote = Vote.APPROVE;
+
+ for (RowEditorListener listener : this) {
+ vote = vote.tally(listener.previewSaveChanges(rowEditor,
+ tableView, rowIndex, columnIndex, changes));
+ }
+
+ return vote;
+ }
+
+ @Override
+ public void saveChangesVetoed(RowEditor rowEditor, Vote reason) {
+ for (RowEditorListener listener : this) {
+ listener.saveChangesVetoed(rowEditor, reason);
+ }
+ }
+
+ @Override
+ public void changesSaved(RowEditor rowEditor, TableView tableView,
+ int rowIndex, int columnIndex) {
+ for (RowEditorListener listener : this) {
+ listener.changesSaved(rowEditor, tableView, rowIndex,
+ columnIndex);
+ }
+ }
+
+ @Override
+ public void editCancelled(RowEditor rowEditor, TableView tableView,
+ int rowIndex, int columnIndex) {
+ for (RowEditorListener listener : this) {
+ listener.editCancelled(rowEditor, tableView, rowIndex,
+ columnIndex);
+ }
+ }
+ }
+
+ /**
* Notifies the editor that editing should begin. If the editor is
- * currently installed on the table view, the skin may choose to call
- * this method when the user executes the appropriate gesture (as
- * defined by the skin).
+ * currently installed on the table view, the skin may call this method
+ * when the user executes the appropriate gesture (as defined by the
+ * skin).
*
* @param tableView
* The table view
@@ -446,7 +521,182 @@
* @see
* #setRowEditor(RowEditor)
*/
- public void edit(TableView tableView, int rowIndex, int columnIndex);
+ public void editRow(TableView tableView, int rowIndex, int columnIndex);
+
+ /**
+ * Gets the row editor listener list.
+ */
+ public ListenerList<RowEditorListener> getRowEditorListeners();
+ }
+
+ /**
+ * The row editor listener interface. This provides callers with
+ * notifications about a row editor's activity.
+ */
+ public interface RowEditorListener {
+ /**
+ * Row editor listener adapter.
+ */
+ public static class Adapter implements RowEditorListener {
+ @Override
+ public Vote previewEditRow(RowEditor rowEditor, TableView tableView,
+ int rowIndex, int columnIndex) {
+ return Vote.APPROVE;
+ }
+
+ @Override
+ public void editRowVetoed(RowEditor rowEditor, Vote reason) {
+ }
+
+ @Override
+ public void rowEditing(RowEditor rowEditor, TableView tableView,
+ int rowIndex, int columnIndex) {
+ }
+
+ @Override
+ public Vote previewSaveChanges(RowEditor rowEditor, TableView tableView,
+ int rowIndex, int columnIndex, Dictionary<String, Object> changes) {
+ return Vote.APPROVE;
+ }
+
+ @Override
+ public void saveChangesVetoed(RowEditor rowEditor, Vote reason) {
+ }
+
+ @Override
+ public void changesSaved(RowEditor rowEditor, TableView tableView,
+ int rowIndex, int columnIndex) {
+ }
+
+ @Override
+ public void editCancelled(RowEditor rowEditor, TableView tableView,
+ int rowIndex, int columnIndex) {
+ }
+ }
+
+ /**
+ * Called to preview a row edit.
+ *
+ * @param rowEditor
+ * The row editor
+ *
+ * @param tableView
+ * The table view containing the row to be edited.
+ *
+ * @param rowIndex
+ * The index of the row to edit.
+ *
+ * @param columnIndex
+ * The index of the column to edit.
+ *
+ * @return
+ * A vote on whether editing should be allowed to begin.
+ */
+ public Vote previewEditRow(RowEditor rowEditor, TableView tableView,
+ int rowIndex, int columnIndex);
+
+ /**
+ * Called when a row edit was vetoed by a listener in the preview
+ * event.
+ *
+ * @param rowEditor
+ * The row editor
+ *
+ * @param reason
+ * The reason for the veto
+ */
+ public void editRowVetoed(RowEditor rowEditor, Vote reason);
+
+ /**
+ * Called when editing has begun.
+ *
+ * @param rowEditor
+ * The row editor
+ *
+ * @param tableView
+ * The table view containing the row being edited.
+ *
+ * @param rowIndex
+ * The index of the row being edited.
+ *
+ * @param columnIndex
+ * The index of the column being edited.
+ */
+ public void rowEditing(RowEditor rowEditor, TableView tableView,
+ int rowIndex, int columnIndex);
+
+ /**
+ * Called to preview a save.
+ *
+ * @param rowEditor
+ * The row editor
+ *
+ * @param tableView
+ * The table view containing the row being edited.
+ *
+ * @param rowIndex
+ * The index of the row being edited.
+ *
+ * @param columnIndex
+ * The index of the column being edited.
+ *
+ * @param changes
+ * The proposed changes, indexed by table view column name. The type of
+ * each entry in this dictionary will depend on the editor
+ * implementation.
+ *
+ * @return
+ * A vote on whether the changes should be allowed to be saved.
+ */
+ public Vote previewSaveChanges(RowEditor rowEditor, TableView tableView,
+ int rowIndex, int columnIndex, Dictionary<String, Object> changes);
+
+ /**
+ * Called when a save was vetoed by a listener in the preview event.
+ *
+ * @param rowEditor
+ * The row editor
+ *
+ * @param reason
+ * The reason for the veto
+ */
+ public void saveChangesVetoed(RowEditor rowEditor, Vote reason);
+
+ /**
+ * Called when changes have been saved.
+ *
+ * @param rowEditor
+ * The row editor
+ *
+ * @param tableView
+ * The table view containing the row that was edited.
+ *
+ * @param rowIndex
+ * The index of the row that was edited.
+ *
+ * @param columnIndex
+ * The index of the column that was edited.
+ */
+ public void changesSaved(RowEditor rowEditor, TableView tableView,
+ int rowIndex, int columnIndex);
+
+ /**
+ * Called when an edit has been cancelled.
+ *
+ * @param rowEditor
+ * The row editor
+ *
+ * @param tableView
+ * The table view containing the row that was being edited.
+ *
+ * @param rowIndex
+ * The index of the row that was being edited.
+ *
+ * @param columnIndex
+ * The index of the column that was being edited.
+ */
+ public void editCancelled(RowEditor rowEditor, TableView tableView,
+ int rowIndex, int columnIndex);
}
/**
Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/TreeView.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/TreeView.java?rev=815913&r1=815912&r2=815913&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/TreeView.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/TreeView.java Wed Sep 16 17:55:34 2009
@@ -27,6 +27,7 @@
import org.apache.pivot.collections.immutable.ImmutableList;
import org.apache.pivot.util.Filter;
import org.apache.pivot.util.ListenerList;
+import org.apache.pivot.util.Vote;
import org.apache.pivot.wtk.content.TreeViewNodeRenderer;
/**
@@ -98,10 +99,81 @@
*/
public interface NodeEditor extends Editor {
/**
+ * Node editor listener list.
+ */
+ public static class NodeEditorListenerList
+ extends ListenerList<NodeEditorListener>
+ implements NodeEditorListener {
+ @Override
+ public Vote previewEditNode(NodeEditor nodeEditor, TreeView treeView,
+ Path path) {
+ Vote vote = Vote.APPROVE;
+
+ for (NodeEditorListener listener : this) {
+ vote = vote.tally(listener.previewEditNode(nodeEditor,
+ treeView, path));
+ }
+
+ return vote;
+ }
+
+ @Override
+ public void editNodeVetoed(NodeEditor nodeEditor, Vote reason) {
+ for (NodeEditorListener listener : this) {
+ listener.editNodeVetoed(nodeEditor, reason);
+ }
+ }
+
+ @Override
+ public void nodeEditing(NodeEditor nodeEditor, TreeView treeView,
+ Path path) {
+ for (NodeEditorListener listener : this) {
+ listener.nodeEditing(nodeEditor, treeView, path);
+ }
+ }
+
+ @Override
+ public Vote previewSaveChanges(NodeEditor nodeEditor, TreeView treeView,
+ Path path, Object changes) {
+ Vote vote = Vote.APPROVE;
+
+ for (NodeEditorListener listener : this) {
+ vote = vote.tally(listener.previewSaveChanges(nodeEditor,
+ treeView, path, changes));
+ }
+
+ return vote;
+ }
+
+ @Override
+ public void saveChangesVetoed(NodeEditor nodeEditor, Vote reason) {
+ for (NodeEditorListener listener : this) {
+ listener.saveChangesVetoed(nodeEditor, reason);
+ }
+ }
+
+ @Override
+ public void changesSaved(NodeEditor nodeEditor, TreeView treeView,
+ Path path) {
+ for (NodeEditorListener listener : this) {
+ listener.changesSaved(nodeEditor, treeView, path);
+ }
+ }
+
+ @Override
+ public void editCancelled(NodeEditor nodeEditor, TreeView treeView,
+ Path path) {
+ for (NodeEditorListener listener : this) {
+ listener.editCancelled(nodeEditor, treeView, path);
+ }
+ }
+ }
+
+ /**
* Notifies the editor that editing should begin. If the editor is
- * currently installed on the tree view, the skin may choose to
- * call this method when the user executes the appropriate gesture
- * (as defined by the skin).
+ * currently installed on the tree view, the skin may call this method
+ * when the user executes the appropriate gesture (as defined by the
+ * skin).
*
* @param treeView
* The tree view containing the node to be edited.
@@ -112,7 +184,156 @@
* @see
* #setNodeEditor(NodeEditor)
*/
- public void edit(TreeView treeView, Path path);
+ public void editNode(TreeView treeView, Path path);
+
+ /**
+ * Gets the node editor listener list.
+ */
+ public ListenerList<NodeEditorListener> getNodeEditorListeners();
+ }
+
+ /**
+ * The node editor listener interface. This provides callers with
+ * notifications about a node editor's activity.
+ */
+ public interface NodeEditorListener {
+ /**
+ * Node editor listener adapter.
+ */
+ public static class Adapter implements NodeEditorListener {
+ @Override
+ public Vote previewEditNode(NodeEditor nodeEditor, TreeView treeView, Path path) {
+ return Vote.APPROVE;
+ }
+
+ @Override
+ public void editNodeVetoed(NodeEditor nodeEditor, Vote reason) {
+ }
+
+ @Override
+ public void nodeEditing(NodeEditor nodeEditor, TreeView treeView, Path path) {
+ }
+
+ @Override
+ public Vote previewSaveChanges(NodeEditor nodeEditor, TreeView treeView, Path path, Object changes) {
+ return Vote.APPROVE;
+ }
+
+ @Override
+ public void saveChangesVetoed(NodeEditor nodeEditor, Vote reason) {
+ }
+
+ @Override
+ public void changesSaved(NodeEditor nodeEditor, TreeView treeView, Path path) {
+ }
+
+ @Override
+ public void editCancelled(NodeEditor nodeEditor, TreeView treeView, Path path) {
+ }
+ }
+
+ /**
+ * Called to preview a node edit.
+ *
+ * @param nodeEditor
+ * The node editor
+ *
+ * @param treeView
+ * The tree view containing the node to be edited.
+ *
+ * @param path
+ * The path to the node to edit.
+ *
+ * @return
+ * A vote on whether editing should be allowed to begin.
+ */
+ public Vote previewEditNode(NodeEditor nodeEditor, TreeView treeView, Path path);
+
+ /**
+ * Called when a node edit was vetoed by a listener in the preview
+ * event.
+ *
+ * @param nodeEditor
+ * The node editor
+ *
+ * @param reason
+ * The reason for the veto
+ */
+ public void editNodeVetoed(NodeEditor nodeEditor, Vote reason);
+
+ /**
+ * Called when editing has begun.
+ *
+ * @param nodeEditor
+ * The node editor
+ *
+ * @param treeView
+ * The tree view containing the node being edited.
+ *
+ * @param path
+ * The path to the node being edited.
+ */
+ public void nodeEditing(NodeEditor nodeEditor, TreeView treeView, Path path);
+
+ /**
+ * Called to preview a save.
+ *
+ * @param nodeEditor
+ * The node editor
+ *
+ * @param treeView
+ * The tree view containing the node being edited.
+ *
+ * @param path
+ * The path to the node being edited.
+ *
+ * @param changes
+ * The proposed changes. The type of this object will depend on the
+ * editor implementation.
+ *
+ * @return
+ * A vote on whether the changes should be allowed to be saved.
+ */
+ public Vote previewSaveChanges(NodeEditor nodeEditor, TreeView treeView, Path path, Object changes);
+
+ /**
+ * Called when a save was vetoed by a listener in the preview event.
+ *
+ * @param nodeEditor
+ * The node editor
+ *
+ * @param reason
+ * The reason for the veto
+ */
+ public void saveChangesVetoed(NodeEditor nodeEditor, Vote reason);
+
+ /**
+ * Called when changes have been saved.
+ *
+ * @param nodeEditor
+ * The node editor
+ *
+ * @param treeView
+ * The tree view containing the node that was edited.
+ *
+ * @param path
+ * The path to the node that was edited.
+ */
+ public void changesSaved(NodeEditor nodeEditor, TreeView treeView, Path path);
+
+ /**
+ * Called when an edit has been cancelled.
+ *
+ * @param nodeEditor
+ * The node editor
+ *
+ * @param treeView
+ * The tree view containing the node that was being edited.
+ *
+ * @param path
+ * The path to the node that was being edited.
+ */
+ public void editCancelled(NodeEditor nodeEditor, TreeView treeView, Path path);
}
/**
Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/content/ListViewItemEditor.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/content/ListViewItemEditor.java?rev=815913&r1=815912&r2=815913&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/content/ListViewItemEditor.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/content/ListViewItemEditor.java Wed Sep 16 17:55:34 2009
@@ -17,6 +17,7 @@
package org.apache.pivot.wtk.content;
import org.apache.pivot.collections.List;
+import org.apache.pivot.util.ListenerList;
import org.apache.pivot.wtk.ApplicationContext;
import org.apache.pivot.wtk.Bounds;
import org.apache.pivot.wtk.Component;
@@ -45,6 +46,8 @@
private TextInput textInput = null;
private Window popup = null;
+ private ItemEditorListenerList itemEditorListeners = new ItemEditorListenerList();
+
private ComponentListener componentListener = new ComponentListener.Adapter() {
@Override
public void sizeChanged(Component component, int previousWidth, int previousHeight) {
@@ -70,34 +73,34 @@
private ListViewListener listViewListener = new ListViewListener.Adapter() {
@Override
public void listDataChanged(ListView listView, List<?> previousListData) {
- cancel();
+ cancelEdit();
}
@Override
public void itemEditorChanged(ListView listView, ListView.ItemEditor previousItemEditor) {
- cancel();
+ cancelEdit();
}
};
private ListViewItemListener listViewItemListener = new ListViewItemListener.Adapter() {
@Override
public void itemInserted(ListView listView, int index) {
- cancel();
+ cancelEdit();
}
@Override
public void itemsRemoved(ListView listView, int index, int count) {
- cancel();
+ cancelEdit();
}
@Override
public void itemUpdated(ListView listView, int index) {
- cancel();
+ cancelEdit();
}
@Override
public void itemsSorted(ListView listView) {
- cancel();
+ cancelEdit();
}
};
@@ -105,9 +108,9 @@
@Override
public boolean keyPressed(Component component, int keyCode, Keyboard.KeyLocation keyLocation) {
if (keyCode == Keyboard.KeyCode.ENTER) {
- save();
+ saveChanges();
} else if (keyCode == Keyboard.KeyCode.ESCAPE) {
- cancel();
+ cancelEdit();
}
return false;
@@ -152,7 +155,7 @@
Window window = (Window)display.getComponentAt(x, y);
if (popup != window) {
- save();
+ saveChanges();
}
return false;
@@ -182,7 +185,7 @@
* {@inheritDoc}
*/
@Override
- public void edit(ListView listView, int index) {
+ public void editItem(ListView listView, int index) {
if (this.listView != null) {
throw new IllegalStateException("Currently editing.");
}
@@ -262,7 +265,7 @@
*/
@SuppressWarnings("unchecked")
@Override
- public void save() {
+ public void saveChanges() {
if (!isEditing()) {
throw new IllegalStateException();
}
@@ -295,11 +298,16 @@
* {@inheritDoc}
*/
@Override
- public void cancel() {
+ public void cancelEdit() {
if (!isEditing()) {
throw new IllegalStateException();
}
popup.close();
}
+
+ @Override
+ public ListenerList<ListView.ItemEditorListener> getItemEditorListeners() {
+ return itemEditorListeners;
+ }
}
Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewCellEditor.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewCellEditor.java?rev=815913&r1=815912&r2=815913&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewCellEditor.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewCellEditor.java Wed Sep 16 17:55:34 2009
@@ -19,6 +19,7 @@
import org.apache.pivot.beans.BeanDictionary;
import org.apache.pivot.collections.Dictionary;
import org.apache.pivot.collections.List;
+import org.apache.pivot.util.ListenerList;
import org.apache.pivot.wtk.ApplicationContext;
import org.apache.pivot.wtk.Bounds;
import org.apache.pivot.wtk.Component;
@@ -72,12 +73,12 @@
private TableViewListener tableViewListener = new TableViewListener.Adapter() {
@Override
public void tableDataChanged(TableView tableView, List<?> previousTableData) {
- cancel();
+ cancelEdit();
}
@Override
public void rowEditorChanged(TableView tableView, TableView.RowEditor previousRowEditor) {
- cancel();
+ cancelEdit();
}
};
@@ -88,22 +89,22 @@
private TableViewRowListener tableViewRowListener = new TableViewRowListener.Adapter() {
@Override
public void rowInserted(TableView tableView, int rowIndex) {
- cancel();
+ cancelEdit();
}
@Override
public void rowsRemoved(TableView tableView, int rowIndex, int count) {
- cancel();
+ cancelEdit();
}
@Override
public void rowUpdated(TableView tableView, int rowIndex) {
- cancel();
+ cancelEdit();
}
@Override
public void rowsSorted(TableView tableView) {
- cancel();
+ cancelEdit();
}
};
@@ -115,9 +116,9 @@
@Override
public boolean keyPressed(Component component, int keyCode, Keyboard.KeyLocation keyLocation) {
if (keyCode == Keyboard.KeyCode.ENTER) {
- save();
+ saveChanges();
} else if (keyCode == Keyboard.KeyCode.ESCAPE) {
- cancel();
+ cancelEdit();
}
return false;
@@ -172,7 +173,7 @@
Window window = (Window)display.getComponentAt(x, y);
if (popup != window) {
- save();
+ saveChanges();
}
return false;
@@ -192,6 +193,8 @@
private TextInput textInput = null;
private Window popup = null;
+ private RowEditorListenerList rowEditorListeners = new RowEditorListenerList();
+
/**
* Gets the text input that serves as the editor component. This component
* will only be non-<tt>null</tt> while editing.
@@ -210,7 +213,7 @@
*/
@SuppressWarnings("unchecked")
@Override
- public void edit(TableView tableView, int rowIndex, int columnIndex) {
+ public void editRow(TableView tableView, int rowIndex, int columnIndex) {
if (isEditing()) {
throw new IllegalStateException("Currently editing.");
}
@@ -284,7 +287,7 @@
*/
@SuppressWarnings("unchecked")
@Override
- public void save() {
+ public void saveChanges() {
if (!isEditing()) {
throw new IllegalStateException();
}
@@ -326,11 +329,19 @@
* {@inheritDoc}
*/
@Override
- public void cancel() {
+ public void cancelEdit() {
if (!isEditing()) {
throw new IllegalStateException();
}
popup.close();
}
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public ListenerList<TableView.RowEditorListener> getRowEditorListeners() {
+ return rowEditorListeners;
+ }
}
Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewRowEditor.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewRowEditor.java?rev=815913&r1=815912&r2=815913&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewRowEditor.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewRowEditor.java Wed Sep 16 17:55:34 2009
@@ -23,6 +23,7 @@
import org.apache.pivot.collections.HashMap;
import org.apache.pivot.collections.List;
import org.apache.pivot.util.Filter;
+import org.apache.pivot.util.ListenerList;
import org.apache.pivot.wtk.ApplicationContext;
import org.apache.pivot.wtk.Bounds;
import org.apache.pivot.wtk.CardPane;
@@ -294,9 +295,9 @@
@Override
protected boolean keyPressed(int keyCode, Keyboard.KeyLocation keyLocation) {
if (keyCode == Keyboard.KeyCode.ENTER) {
- save();
+ saveChanges();
} else if (keyCode == Keyboard.KeyCode.ESCAPE) {
- cancel();
+ cancelEdit();
}
return super.keyPressed(keyCode, keyLocation);
@@ -306,14 +307,13 @@
this.tableViewScrollPane = tableViewScrollPane;
}
- public void edit() {
- Window window = tableView.getWindow();
- open(window.getDisplay());
+ public void editRow() {
+ open(tableView.getDisplay());
reposition();
}
@SuppressWarnings("unchecked")
- public void save() {
+ public void saveChanges() {
List<Object> tableData = (List<Object>)tableView.getTableData();
// Get the row data, represented as a Dictionary
@@ -342,7 +342,7 @@
}
}
- public void cancel() {
+ public void cancelEdit() {
// Close without updating the table data
close();
}
@@ -399,7 +399,7 @@
if (window != this &&
(window == null || !isOwner(window))) {
- save();
+ saveChanges();
}
}
@@ -478,7 +478,7 @@
@Override
public void visibleChanged(Component component) {
- cancel();
+ cancelEdit();
}
@Override
@@ -515,12 +515,12 @@
@Override
public void tableDataChanged(TableView tableView, List<?> previousTableData) {
- cancel();
+ cancelEdit();
}
@Override
public void rowEditorChanged(TableView tableView, TableView.RowEditor previousRowEditor) {
- cancel();
+ cancelEdit();
}
@Override
@@ -537,27 +537,27 @@
@Override
public void rowInserted(TableView tableView, int index) {
- cancel();
+ cancelEdit();
}
@Override
public void rowsRemoved(TableView tableView, int index, int count) {
- cancel();
+ cancelEdit();
}
@Override
public void rowUpdated(TableView tableView, int index) {
- cancel();
+ cancelEdit();
}
@Override
public void rowsCleared(TableView tableView) {
- cancel();
+ cancelEdit();
}
@Override
public void rowsSorted(TableView tableView) {
- cancel();
+ cancelEdit();
}
}
@@ -567,6 +567,8 @@
private CardPaneSkin.SelectionChangeEffect editEffect = null;
+ private RowEditorListenerList rowEditorListeners = new RowEditorListenerList();
+
private static final int IMAGE_CARD_INDEX = 0;
private static final int EDITOR_CARD_INDEX = 1;
@@ -635,7 +637,7 @@
* {@inheritDoc}
*/
@Override
- public void edit(TableView tableView, int rowIndex, int columnIndex) {
+ public void editRow(TableView tableView, int rowIndex, int columnIndex) {
if (editorPopup != null) {
throw new IllegalStateException("Edit already in progress.");
}
@@ -658,7 +660,7 @@
editorPopup.setTableViewScrollPane((ScrollPane)tableViewParent);
}
- editorPopup.edit();
+ editorPopup.editRow();
}
/**
@@ -673,23 +675,31 @@
* {@inheritDoc}
*/
@Override
- public void save() {
+ public void saveChanges() {
if (editorPopup == null) {
throw new IllegalStateException("No edit in progress.");
}
- editorPopup.save();
+ editorPopup.saveChanges();
}
/**
* {@inheritDoc}
*/
@Override
- public void cancel() {
+ public void cancelEdit() {
if (editorPopup == null) {
throw new IllegalStateException("No edit in progress.");
}
- editorPopup.cancel();
+ editorPopup.cancelEdit();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public ListenerList<TableView.RowEditorListener> getRowEditorListeners() {
+ return rowEditorListeners;
}
}
Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TreeViewNodeEditor.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TreeViewNodeEditor.java?rev=815913&r1=815912&r2=815913&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TreeViewNodeEditor.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TreeViewNodeEditor.java Wed Sep 16 17:55:34 2009
@@ -19,6 +19,7 @@
import org.apache.pivot.collections.List;
import org.apache.pivot.collections.Sequence;
import org.apache.pivot.collections.Sequence.Tree.Path;
+import org.apache.pivot.util.ListenerList;
import org.apache.pivot.wtk.ApplicationContext;
import org.apache.pivot.wtk.Bounds;
import org.apache.pivot.wtk.Component;
@@ -116,9 +117,9 @@
@Override
public boolean keyPressed(Component component, int keyCode, Keyboard.KeyLocation keyLocation) {
if (keyCode == Keyboard.KeyCode.ENTER) {
- save();
+ saveChanges();
} else if (keyCode == Keyboard.KeyCode.ESCAPE) {
- cancel();
+ cancelEdit();
}
return false;
@@ -136,7 +137,7 @@
Window window = (Window)display.getComponentAt(x, y);
if (popup != window) {
- save();
+ saveChanges();
}
return false;
@@ -156,12 +157,12 @@
private TreeViewListener treeViewHandler = new TreeViewListener.Adapter() {
@Override
public void treeDataChanged(TreeView treeView, List<?> previousTreeData) {
- cancel();
+ cancelEdit();
}
@Override
public void nodeEditorChanged(TreeView treeView, TreeView.NodeEditor previousNodeEditor) {
- cancel();
+ cancelEdit();
}
};
@@ -172,22 +173,22 @@
private TreeViewNodeListener treeViewNodeHandler = new TreeViewNodeListener.Adapter() {
@Override
public void nodeInserted(TreeView treeView, Path path, int index) {
- cancel();
+ cancelEdit();
}
@Override
public void nodesRemoved(TreeView treeView, Path path, int index, int count) {
- cancel();
+ cancelEdit();
}
@Override
public void nodeUpdated(TreeView treeView, Path path, int index) {
- cancel();
+ cancelEdit();
}
@Override
public void nodesSorted(TreeView treeView, Path path) {
- cancel();
+ cancelEdit();
}
};
@@ -197,6 +198,8 @@
private Window popup = null;
private TextInput textInput = null;
+ private NodeEditorListenerList nodeEditorListeners = new NodeEditorListenerList();
+
/**
* Gets the text input that serves as the editor component. This component
* will only be non-<tt>null</tt> while editing.
@@ -214,7 +217,7 @@
* {@inheritDoc}
*/
@Override
- public void edit(TreeView treeView, Path path) {
+ public void editNode(TreeView treeView, Path path) {
if (isEditing()) {
throw new IllegalStateException();
}
@@ -293,7 +296,7 @@
*/
@SuppressWarnings("unchecked")
@Override
- public void save() {
+ public void saveChanges() {
if (!isEditing()) {
throw new IllegalStateException();
}
@@ -339,11 +342,19 @@
* {@inheritDoc}
*/
@Override
- public void cancel() {
+ public void cancelEdit() {
if (!isEditing()) {
throw new IllegalStateException();
}
popup.close();
}
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public ListenerList<TreeView.NodeEditorListener> getNodeEditorListeners() {
+ return nodeEditorListeners;
+ }
}
Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraAccordionSkin.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraAccordionSkin.java?rev=815913&r1=815912&r2=815913&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraAccordionSkin.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraAccordionSkin.java Wed Sep 16 17:55:34 2009
@@ -51,7 +51,6 @@
import org.apache.pivot.wtk.skin.ButtonSkin;
import org.apache.pivot.wtk.skin.ContainerSkin;
-
/**
* Accordion skin.
*/
Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraListViewSkin.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraListViewSkin.java?rev=815913&r1=815912&r2=815913&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraListViewSkin.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraListViewSkin.java Wed Sep 16 17:55:34 2009
@@ -676,7 +676,7 @@
ListView.ItemEditor itemEditor = listView.getItemEditor();
if (itemEditor != null) {
- itemEditor.edit(listView, editIndex);
+ itemEditor.editItem(listView, editIndex);
}
}
Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraTableViewSkin.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraTableViewSkin.java?rev=815913&r1=815912&r2=815913&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraTableViewSkin.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraTableViewSkin.java Wed Sep 16 17:55:34 2009
@@ -946,7 +946,7 @@
if (rowEditor != null
&& !rowEditor.isEditing()) {
- rowEditor.edit(tableView, editIndex, getColumnAt(x));
+ rowEditor.editRow(tableView, editIndex, getColumnAt(x));
}
}
Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraTreeViewSkin.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraTreeViewSkin.java?rev=815913&r1=815912&r2=815913&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraTreeViewSkin.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraTreeViewSkin.java Wed Sep 16 17:55:34 2009
@@ -1480,7 +1480,7 @@
TreeView.NodeEditor nodeEditor = treeView.getNodeEditor();
if (nodeEditor != null) {
- nodeEditor.edit(treeView, nodeInfo.getPath());
+ nodeEditor.editNode(treeView, nodeInfo.getPath());
}
}