Author: kevin1219
Date: Thu Aug 28 14:08:58 2008
New Revision: 2654
Added:
trunk/src/ca/sqlpower/architect/swingui/olap/action/EditLevelAction.java
Modified:
trunk/src/ca/sqlpower/architect/swingui/olap/ContextMenuFactory.java
Log:
Added the action for editing Level and added Level's right click menu.
Modified:
trunk/src/ca/sqlpower/architect/swingui/olap/ContextMenuFactory.java
==============================================================================
--- trunk/src/ca/sqlpower/architect/swingui/olap/ContextMenuFactory.java
(original)
+++ trunk/src/ca/sqlpower/architect/swingui/olap/ContextMenuFactory.java
Thu Aug 28 14:08:58 2008
@@ -28,6 +28,7 @@
import ca.sqlpower.architect.olap.MondrianModel.Cube;
import ca.sqlpower.architect.olap.MondrianModel.Dimension;
import ca.sqlpower.architect.olap.MondrianModel.Hierarchy;
+import ca.sqlpower.architect.olap.MondrianModel.Level;
import ca.sqlpower.architect.olap.MondrianModel.Measure;
import ca.sqlpower.architect.olap.MondrianModel.Schema;
import ca.sqlpower.architect.olap.MondrianModel.VirtualCube;
@@ -38,6 +39,7 @@
import ca.sqlpower.architect.swingui.olap.action.EditCubeAction;
import ca.sqlpower.architect.swingui.olap.action.EditDimensionAction;
import ca.sqlpower.architect.swingui.olap.action.EditHierarchyAction;
+import ca.sqlpower.architect.swingui.olap.action.EditLevelAction;
import ca.sqlpower.architect.swingui.olap.action.EditMeasureAction;
import ca.sqlpower.architect.swingui.olap.action.EditSchemaAction;
import ca.sqlpower.architect.swingui.olap.action.EditVirtualCubeAction;
@@ -100,6 +102,8 @@
m.add(new EditMeasureAction(session, (Measure) obj,
oSession.getOlapPlayPen()));
} else if (obj instanceof Hierarchy) {
m.add(new EditHierarchyAction(session, (Hierarchy) obj,
oSession.getOlapPlayPen()));
+ } else if (obj instanceof Level) {
+ m.add(new EditLevelAction(session, (Level) obj,
oSession.getOlapPlayPen()));
}
if (obj != null && !(obj instanceof Schema)) {
Added:
trunk/src/ca/sqlpower/architect/swingui/olap/action/EditLevelAction.java
==============================================================================
--- (empty file)
+++
trunk/src/ca/sqlpower/architect/swingui/olap/action/EditLevelAction.java
Thu Aug 28 14:08:58 2008
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2008, SQL Power Group Inc.
+ *
+ * This file is part of Power*Architect.
+ *
+ * Power*Architect is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Power*Architect is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+package ca.sqlpower.architect.swingui.olap.action;
+
+import java.awt.Window;
+import java.awt.event.ActionEvent;
+
+import javax.swing.JDialog;
+import javax.swing.SwingUtilities;
+
+import ca.sqlpower.architect.ArchitectException;
+import ca.sqlpower.architect.ArchitectRuntimeException;
+import ca.sqlpower.architect.olap.MondrianModel.Level;
+import ca.sqlpower.architect.swingui.ArchitectSwingSession;
+import ca.sqlpower.architect.swingui.PlayPen;
+import ca.sqlpower.architect.swingui.action.AbstractArchitectAction;
+import ca.sqlpower.architect.swingui.olap.LevelEditPanel;
+import ca.sqlpower.swingui.DataEntryPanel;
+import ca.sqlpower.swingui.DataEntryPanelBuilder;
+
+public class EditLevelAction extends AbstractArchitectAction{
+ /**
+ * The level this action edits.
+ */
+ private final Level level;
+
+ /**
+ * The frame or dialog that will own the popup window.
+ */
+ private final Window dialogOwner;
+
+ public EditLevelAction(ArchitectSwingSession session, Level level,
PlayPen pp) {
+ super(session, pp, "Level Properties...", "Edit the properties
of "+level.getName()+" in a dialog", (String) null);
+ this.dialogOwner = SwingUtilities.getWindowAncestor(pp);
+ this.level = level;
+ }
+
+ public void actionPerformed(ActionEvent e) {
+ try {
+ DataEntryPanel panel = new LevelEditPanel(level);
+ JDialog dialog =
DataEntryPanelBuilder.createDataEntryPanelDialog(panel, dialogOwner, "Level
Properties", "OK");
+ dialog.setLocationRelativeTo(session.getArchitectFrame());
+ dialog.setVisible(true);
+ } catch (ArchitectException ex) {
+ throw new ArchitectRuntimeException(ex);
+ }
+ }
+}