You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by an...@apache.org on 2009/12/03 12:04:42 UTC
svn commit: r886739 - in
/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler:
editor/DataDomainTabbedView.java graph/DataDomainGraphTab.java
graph/action/RebuildGraphAction.java graph/action/RefreshGraphAction.java
Author: andrey
Date: Thu Dec 3 11:04:42 2009
New Revision: 886739
URL: http://svn.apache.org/viewvc?rev=886739&view=rev
Log:
CAY-762 ERDiagram for Object Entities in Cayenne Modeler. Rebuild button
Added:
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/action/RebuildGraphAction.java
- copied, changed from r886158, cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/action/RefreshGraphAction.java
Removed:
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/action/RefreshGraphAction.java
Modified:
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataDomainTabbedView.java
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/DataDomainGraphTab.java
Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataDomainTabbedView.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataDomainTabbedView.java?rev=886739&r1=886738&r2=886739&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataDomainTabbedView.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataDomainTabbedView.java Thu Dec 3 11:04:42 2009
@@ -65,7 +65,7 @@
public void stateChanged(ChangeEvent e) {
if (getSelectedComponent() == graphTab) {
- graphTab.rebuild();
+ graphTab.refresh();
}
}
}
Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/DataDomainGraphTab.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/DataDomainGraphTab.java?rev=886739&r1=886738&r2=886739&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/DataDomainGraphTab.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/DataDomainGraphTab.java Thu Dec 3 11:04:42 2009
@@ -24,7 +24,9 @@
import java.awt.event.ItemListener;
import javax.swing.JComboBox;
+import javax.swing.JDialog;
import javax.swing.JLabel;
+import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JToolBar;
@@ -35,7 +37,7 @@
import org.apache.cayenne.modeler.action.ModelerProjectConfiguration;
import org.apache.cayenne.modeler.event.DomainDisplayEvent;
import org.apache.cayenne.modeler.event.DomainDisplayListener;
-import org.apache.cayenne.modeler.graph.action.RefreshGraphAction;
+import org.apache.cayenne.modeler.graph.action.RebuildGraphAction;
import org.apache.cayenne.modeler.graph.action.SaveAsImageAction;
import org.apache.cayenne.modeler.graph.action.ZoomInAction;
import org.apache.cayenne.modeler.graph.action.ZoomOutAction;
@@ -100,7 +102,7 @@
false);
diagramCombo.addItemListener(this);
- toolbar.add(new RefreshGraphAction(this, Application.getInstance()).buildButton());
+ toolbar.add(new RebuildGraphAction(this, Application.getInstance()).buildButton());
toolbar.add(new SaveAsImageAction(this, Application.getInstance()).buildButton());
toolbar.addSeparator();
toolbar.add(new ZoomInAction(this, Application.getInstance()).buildButton());
@@ -121,29 +123,55 @@
needRebuild = true;
if (isVisible()) {
- rebuild();
+ refresh();
}
}
}
/**
- * Rebuilds graph from a domain
+ * Rebuilds graph from a domain, if it is not yet built
+ * Otherwise, takes it from cache
*/
- public synchronized void rebuild() {
+ public synchronized void refresh() {
if (needRebuild && domain != null) {
ModelerProjectConfiguration conf = (ModelerProjectConfiguration)
mediator.getProject().getConfiguration();
graph = conf.getGraphRegistry().loadGraph(mediator, domain,
- GraphType.values()[diagramCombo.getSelectedIndex()]);
+ getSelectedType());
scrollPane.setViewportView(graph);
needRebuild = false;
}
}
+
+ private GraphType getSelectedType() {
+ return GraphType.values()[diagramCombo.getSelectedIndex()];
+ }
+
+ /**
+ * Rebuilds graph, deleting existing if needed
+ */
+ public synchronized void rebuild() {
+ if (domain != null) {
+ JOptionPane pane = new JOptionPane("Rebuilding graph from domain will cause all user" +
+ " changes to be lost. Continue?",
+ JOptionPane.QUESTION_MESSAGE, JOptionPane.YES_NO_OPTION);
+
+ JDialog dialog = pane.createDialog(Application.getFrame(), "Confirm Rebuild");
+ dialog.setVisible(true);
+
+ if (pane.getValue().equals(JOptionPane.YES_OPTION)) {
+ ModelerProjectConfiguration conf = (ModelerProjectConfiguration)
+ mediator.getProject().getConfiguration();
+ conf.getGraphRegistry().getGraphMap(domain).remove(getSelectedType());
+ itemStateChanged(null);
+ }
+ }
+ }
public void itemStateChanged(ItemEvent e) {
needRebuild = true;
- rebuild();
+ refresh();
}
public JGraph getGraph() {
Copied: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/action/RebuildGraphAction.java (from r886158, cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/action/RefreshGraphAction.java)
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/action/RebuildGraphAction.java?p2=cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/action/RebuildGraphAction.java&p1=cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/action/RefreshGraphAction.java&r1=886158&r2=886739&rev=886739&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/action/RefreshGraphAction.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/action/RebuildGraphAction.java Thu Dec 3 11:04:42 2009
@@ -9,11 +9,11 @@
/**
* Action for refreshing the graph
*/
-public class RefreshGraphAction extends CayenneAction {
+public class RebuildGraphAction extends CayenneAction {
private final DataDomainGraphTab dataDomainGraphTab;
- public RefreshGraphAction(DataDomainGraphTab dataDomainGraphTab, Application application) {
- super("Refresh", application);
+ public RebuildGraphAction(DataDomainGraphTab dataDomainGraphTab, Application application) {
+ super("Rebuild", application);
this.dataDomainGraphTab = dataDomainGraphTab;
setEnabled(true);
}
@@ -25,6 +25,6 @@
@Override
public void performAction(ActionEvent e) {
- this.dataDomainGraphTab.itemStateChanged(null);
+ this.dataDomainGraphTab.rebuild();
}
}
\ No newline at end of file