diff -r 43db124d472c openide.explorer/apichanges.xml
--- a/openide.explorer/apichanges.xml Mon Dec 14 17:14:42 2009 +0100
+++ b/openide.explorer/apichanges.xml Mon Dec 14 17:58:10 2009 +0100
@@ -47,6 +47,17 @@
Explorer API
+
+
+ OutlineView.setTreeSortable
added.
+
+
+
+
+ Added method to set or unset the tree column as sortable.
+
+
+
TreeView.setAutoWaitCursor
added.
diff -r 43db124d472c openide.explorer/nbproject/project.properties
--- a/openide.explorer/nbproject/project.properties Mon Dec 14 17:14:42 2009 +0100
+++ b/openide.explorer/nbproject/project.properties Mon Dec 14 17:58:10 2009 +0100
@@ -44,4 +44,4 @@
javadoc.arch=${basedir}/arch.xml
javadoc.apichanges=${basedir}/apichanges.xml
-spec.version.base=6.23.0
+spec.version.base=6.24.0
diff -r 43db124d472c openide.explorer/src/org/openide/explorer/view/OutlineView.java
--- a/openide.explorer/src/org/openide/explorer/view/OutlineView.java Mon Dec 14 17:14:42 2009 +0100
+++ b/openide.explorer/src/org/openide/explorer/view/OutlineView.java Mon Dec 14 17:58:10 2009 +0100
@@ -118,7 +118,7 @@
public class OutlineView extends JScrollPane {
/** The table */
- private Outline outline;
+ private OutlineViewOutline outline;
/** Explorer manager, valid when this view is showing */
ExplorerManager manager;
/** not null if popup menu enabled */
@@ -284,6 +284,16 @@
popupListener = null;
return;
}
+ }
+
+ /**
+ * Set the tree column as sortable
+ * @param treeSortable true
to make the tree column sortable,
+ * false
otherwise. The tree column is sortable by default.
+ * @since 6.24
+ */
+ public void setTreeSortable(boolean treeSortable) {
+ outline.setTreeSortable(treeSortable);
}
/** Initializes the component and lookup explorer manager.
@@ -882,6 +892,9 @@
private static class OutlineViewOutline extends Outline {
private final PropertiesRowModel rowModel;
private static final String COLUMNS_SELECTOR_HINT = "ColumnsSelectorHint"; // NOI18N
+
+ private boolean treeSortable = true;
+
public OutlineViewOutline(OutlineModel mdl, PropertiesRowModel rowModel) {
super(mdl);
this.rowModel = rowModel;
@@ -993,6 +1006,14 @@
return new OutlineViewOutlineColumn(modelIndex);
}
+ boolean isTreeSortable() {
+ return this.treeSortable;
+ }
+
+ void setTreeSortable(boolean treeSortable) {
+ this.treeSortable = treeSortable;
+ }
+
/**
* Extension of ETableColumn using TableViewRowComparator as
* comparator.
@@ -1006,20 +1027,17 @@
}
@Override
public boolean isSortingAllowed() {
- boolean res = super.isSortingAllowed();
- TableModel model = getModel();
- if (model.getRowCount() <= 0) {
- return res;
+ int index = getModelIndex();
+ Object sortable;
+ if (index > 0) {
+ sortable = rowModel.getPropertyValue("SortableColumn", index - 1); // NOI18N
+ } else {
+ return isTreeSortable();
}
- Object sampleValue = model.getValueAt(0, getModelIndex());
- if (sampleValue instanceof Node.Property) {
- Node.Property prop = (Node.Property)sampleValue;
- Object sortableColumnProperty = prop.getValue("SortableColumn");
- if (sortableColumnProperty instanceof Boolean) {
- return ((Boolean)sortableColumnProperty).booleanValue();
- }
+ if (sortable != null) {
+ return Boolean.TRUE.equals(sortable);
}
- return res;
+ return super.isSortingAllowed();
}
@Override
diff -r 43db124d472c openide.explorer/src/org/openide/explorer/view/PropertiesRowModel.java
--- a/openide.explorer/src/org/openide/explorer/view/PropertiesRowModel.java Mon Dec 14 17:14:42 2009 +0100
+++ b/openide.explorer/src/org/openide/explorer/view/PropertiesRowModel.java Mon Dec 14 17:58:10 2009 +0100
@@ -333,6 +333,10 @@
return -1;
}
+ Object getPropertyValue(String propName, int column) {
+ return prop[column].getValue(propName);
+ }
+
/**
* Changes the value of the boolean property.
*/