You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2006/05/08 06:54:25 UTC
svn commit: r404929 - in
/incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/modeler/dialog:
codegen/ db/
Author: aadamchik
Date: Sun May 7 21:54:24 2006
New Revision: 404929
URL: http://svn.apache.org/viewcvs?rev=404929&view=rev
Log:
implementing code and table generators smart "select all" checkbox state
Modified:
incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/modeler/dialog/codegen/CodeGeneratorController.java
incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/modeler/dialog/codegen/EntitiesTabController.java
incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/modeler/dialog/db/TableSelectorController.java
incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/modeler/dialog/db/TableSelectorView.java
Modified: incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/modeler/dialog/codegen/CodeGeneratorController.java
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/modeler/dialog/codegen/CodeGeneratorController.java?rev=404929&r1=404928&r2=404929&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/modeler/dialog/codegen/CodeGeneratorController.java (original)
+++ incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/modeler/dialog/codegen/CodeGeneratorController.java Sun May 7 21:54:24 2006
@@ -96,6 +96,7 @@
view = new CodeGeneratorDialog(generatorSelector.getView(), entitySelector
.getView());
initBindings();
+
view.pack();
view.setModal(true);
centerView();
@@ -128,6 +129,7 @@
: PredicateUtils.falsePredicate();
updateSelection(predicate);
+ entitySelector.entitySelectedAction();
}
public void entitySelectedAction() {
Modified: incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/modeler/dialog/codegen/EntitiesTabController.java
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/modeler/dialog/codegen/EntitiesTabController.java?rev=404929&r1=404928&r2=404929&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/modeler/dialog/codegen/EntitiesTabController.java (original)
+++ incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/modeler/dialog/codegen/EntitiesTabController.java Sun May 7 21:54:24 2006
@@ -87,6 +87,7 @@
}
protected void initBindings() {
+
BindingBuilder builder = new BindingBuilder(
getApplication().getBindingFactory(),
this);
@@ -97,7 +98,7 @@
tableBuilder.addColumn(
"",
- "parent.setCurrentEntity(#item), parent.selected",
+ "parent.setCurrentEntity(#item), selected",
Boolean.class,
true,
Boolean.TRUE);
@@ -116,9 +117,35 @@
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
this.tableBinding = tableBuilder.bindToTable(view.getTable(), "parent.entities");
+ }
+
+ public boolean isSelected() {
+ return getParentController().isSelected();
+ }
+
+ public void setSelected(boolean selected) {
+ getParentController().setSelected(selected);
+ entitySelectedAction();
+ }
+ /**
+ * A callback action that updates the state of Select All checkbox.
+ */
+ public void entitySelectedAction() {
+ int selectedCount = getParentController().getSelectedEntitiesSize();
+
+ if (selectedCount == 0) {
+ view.getCheckAll().setSelected(false);
+ }
+ else if (selectedCount == getParentController().getEntities().size()) {
+ view.getCheckAll().setSelected(true);
+ }
}
+ /**
+ * An action that updates entity check boxes in response to the Select All state
+ * change.
+ */
public void checkAllAction() {
Predicate predicate = view.getCheckAll().isSelected() ? PredicateUtils
Modified: incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/modeler/dialog/db/TableSelectorController.java
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/modeler/dialog/db/TableSelectorController.java?rev=404929&r1=404928&r2=404929&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/modeler/dialog/db/TableSelectorController.java (original)
+++ incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/modeler/dialog/db/TableSelectorController.java Sun May 7 21:54:24 2006
@@ -88,6 +88,7 @@
protected DbEntity table;
protected List tables;
+ protected int permanentlyExcludedCount;
protected Map excludedTables;
protected List selectableTablesList;
protected Map validationMessages;
@@ -144,6 +145,22 @@
else {
excludedTables.put(table.getName(), table);
}
+
+ tableSelectedAction();
+ }
+
+ /**
+ * A callback action that updates the state of Select All checkbox.
+ */
+ public void tableSelectedAction() {
+ int unselectedCount = excludedTables.size() - permanentlyExcludedCount;
+
+ if (unselectedCount == selectableTablesList.size()) {
+ view.getCheckAll().setSelected(false);
+ }
+ else if (unselectedCount == 0) {
+ view.getCheckAll().setSelected(true);
+ }
}
public Object getProblem() {
@@ -244,6 +261,7 @@
}
// Find selectable tables
+ permanentlyExcludedCount = excludedTables.size();
selectableTablesList.clear();
tablesIt = tables.iterator();
while (tablesIt.hasNext()) {
@@ -255,6 +273,7 @@
}
tableBinding.updateView();
+ tableSelectedAction();
}
public void checkAllAction() {
Modified: incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/modeler/dialog/db/TableSelectorView.java
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/modeler/dialog/db/TableSelectorView.java?rev=404929&r1=404928&r2=404929&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/modeler/dialog/db/TableSelectorView.java (original)
+++ incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/modeler/dialog/db/TableSelectorView.java Sun May 7 21:54:24 2006
@@ -82,8 +82,7 @@
public TableSelectorView() {
this.checkAll = new JCheckBox();
- this.checkAll.setSelected(true);
- this.checkAllLabel = new JLabel("Uncheck All Tables");
+ this.checkAllLabel = new JLabel("Check All Tables");
checkAll.addItemListener(new ItemListener() {