Author: jfuerth
Date: Wed Aug 27 09:22:30 2008
New Revision: 2626
Added:
trunk/src/ca/sqlpower/architect/swingui/olap/OSUtils.java
Modified:
trunk/src/ca/sqlpower/architect/swingui/olap/OLAPTreeCellRenderer.java
Log:
Pulled the icon decision logic out of the tree cell renderer so we can use
it from elsewhere.
Modified:
trunk/src/ca/sqlpower/architect/swingui/olap/OLAPTreeCellRenderer.java
==============================================================================
--- trunk/src/ca/sqlpower/architect/swingui/olap/OLAPTreeCellRenderer.java
(original)
+++ trunk/src/ca/sqlpower/architect/swingui/olap/OLAPTreeCellRenderer.java
Wed Aug 27 09:22:30 2008
@@ -21,61 +21,18 @@
import java.awt.Component;
-import javax.swing.ImageIcon;
import javax.swing.JTree;
import javax.swing.tree.DefaultTreeCellRenderer;
import ca.sqlpower.architect.olap.OLAPObject;
import ca.sqlpower.architect.olap.OLAPUtil;
-import ca.sqlpower.architect.olap.MondrianModel.CalculatedMember;
-import ca.sqlpower.architect.olap.MondrianModel.Cube;
-import ca.sqlpower.architect.olap.MondrianModel.CubeDimension;
-import ca.sqlpower.architect.olap.MondrianModel.CubeGrant;
-import ca.sqlpower.architect.olap.MondrianModel.CubeUsage;
-import ca.sqlpower.architect.olap.MondrianModel.Formula;
-import ca.sqlpower.architect.olap.MondrianModel.Grant;
-import ca.sqlpower.architect.olap.MondrianModel.Hierarchy;
-import ca.sqlpower.architect.olap.MondrianModel.HierarchyGrant;
-import ca.sqlpower.architect.olap.MondrianModel.Level;
-import ca.sqlpower.architect.olap.MondrianModel.Measure;
-import ca.sqlpower.architect.olap.MondrianModel.MemberGrant;
-import ca.sqlpower.architect.olap.MondrianModel.NamedSet;
-import ca.sqlpower.architect.olap.MondrianModel.Property;
-import ca.sqlpower.architect.olap.MondrianModel.Role;
-import ca.sqlpower.architect.olap.MondrianModel.Schema;
-import ca.sqlpower.architect.olap.MondrianModel.SchemaGrant;
-import ca.sqlpower.architect.olap.MondrianModel.Union;
-import ca.sqlpower.architect.olap.MondrianModel.VirtualCube;
-import ca.sqlpower.architect.olap.MondrianModel.VirtualCubeMeasure;
-import ca.sqlpower.swingui.BlankIcon;
-import ca.sqlpower.swingui.SPSUtils;
public class OLAPTreeCellRenderer extends DefaultTreeCellRenderer {
- public static final ImageIcon CUBE_ICON =
SPSUtils.createIcon("olap/cube", "Cube"); //$NON-NLS-1$ //$NON-NLS-2$
- public static final ImageIcon CUBE_USAGE_ICON =
SPSUtils.createIcon("olap/cubeUsage", "Cube Usage"); //$NON-NLS-1$
//$NON-NLS-2$
- public static final ImageIcon DIMENSION_ICON =
SPSUtils.createIcon("olap/dimension", "Dimension"); //$NON-NLS-1$
//$NON-NLS-2$
- public static final ImageIcon FORMULA_ICON =
SPSUtils.createIcon("olap/formula", "Formula"); //$NON-NLS-1$ //$NON-NLS-2$
- public static final ImageIcon HIERARCHY_ICON =
SPSUtils.createIcon("olap/hierarchy", "Hierarchy"); //$NON-NLS-1$
//$NON-NLS-2$
- public static final ImageIcon LEVEL_ICON =
SPSUtils.createIcon("olap/level", "Level"); //$NON-NLS-1$ //$NON-NLS-2$
- public static final ImageIcon LEVEL_PROP_ICON =
SPSUtils.createIcon("olap/levelProperty", "Level Property"); //$NON-NLS-1$
//$NON-NLS-2$
- public static final ImageIcon MEASURE_ICON =
SPSUtils.createIcon("olap/measure", "Measure"); //$NON-NLS-1$ //$NON-NLS-2$
- public static final ImageIcon MEASURE_PROP_ICON =
SPSUtils.createIcon("olap/measureProperty", "Measure Property");
//$NON-NLS-1$ //$NON-NLS-2$
- public static final ImageIcon NAMED_SET_ICON =
SPSUtils.createIcon("olap/namedSet", "Named Set"); //$NON-NLS-1$
//$NON-NLS-2$
- public static final ImageIcon SCHEMA_ICON =
SPSUtils.createIcon("olap/schema", "Schema"); //$NON-NLS-1$ //$NON-NLS-2$
- public static final ImageIcon SEC_GRANT_ICON =
SPSUtils.createIcon("olap/securityGrant", "Grant"); //$NON-NLS-1$
//$NON-NLS-2$
- public static final ImageIcon SEC_CUBE_GRANT_ICON =
SPSUtils.createIcon("olap/cubeGrant", "Cube Grant"); //$NON-NLS-1$
//$NON-NLS-2$
- public static final ImageIcon SEC_HIERARCHY_GRANT_ICON =
SPSUtils.createIcon("olap/hierarchyGrant", "Hierarchy Grant");
//$NON-NLS-1$ //$NON-NLS-2$
- public static final ImageIcon SEC_SCHEMA_GRANT_ICON =
SPSUtils.createIcon("olap/schemaGrant", "Schema Grant"); //$NON-NLS-1$
//$NON-NLS-2$
- public static final ImageIcon SEC_ROLE_ICON =
SPSUtils.createIcon("olap/securityRole", "Role"); //$NON-NLS-1$
//$NON-NLS-2$
- public static final ImageIcon SEC_UNION_ICON =
SPSUtils.createIcon("olap/securityUnion", "Union"); //$NON-NLS-1$
//$NON-NLS-2$
- public static final ImageIcon VIRTUAL_CUBE_ICON =
SPSUtils.createIcon("olap/virtualCube", "Virtual Cube"); //$NON-NLS-1$
//$NON-NLS-2$
-
public OLAPTreeCellRenderer(){
super();
}
-
public Component getTreeCellRendererComponent(JTree tree,
Object value,
boolean sel,
@@ -84,57 +41,7 @@
int row,
boolean hasFocus) {
setText(OLAPUtil.nameFor((OLAPObject) value));
- if (false) {
- } else if (value instanceof CalculatedMember) {
- setIcon(FORMULA_ICON);
- } else if (value instanceof Cube) {
- setIcon(CUBE_ICON);
- } else if (value instanceof CubeUsage) {
- setIcon(CUBE_USAGE_ICON);
- } else if (value instanceof CubeDimension) {
- setIcon(DIMENSION_ICON);
- } else if (value instanceof Formula) {
- setIcon(FORMULA_ICON);
- } else if (value instanceof Hierarchy) {
- setIcon(HIERARCHY_ICON);
- } else if (value instanceof Level) {
- setIcon(LEVEL_ICON);
- } else if (value instanceof Property && ((Property)
value).getParent() instanceof Level) {
- setIcon(LEVEL_PROP_ICON);
- } else if (value instanceof Measure) {
- setIcon(MEASURE_ICON);
- } else if (value instanceof Property && ((Property)
value).getParent() instanceof Measure) {
- setIcon(MEASURE_PROP_ICON);
- } else if (value instanceof MemberGrant) {
- setIcon(SEC_GRANT_ICON);
- } else if (value instanceof NamedSet) {
- setIcon(NAMED_SET_ICON);
- } else if (value instanceof Schema) {
- setIcon(SCHEMA_ICON);
- } else if (value instanceof CubeGrant) {
- setIcon(SEC_CUBE_GRANT_ICON);
-// } else if (value instanceof DimensionGrant) { TODO get this icon
-// setIcon(SEC_DIMENSION_GRANT_ICON);
- } else if (value instanceof HierarchyGrant) {
- setIcon(SEC_HIERARCHY_GRANT_ICON);
- } else if (value instanceof SchemaGrant) {
- setIcon(SEC_SCHEMA_GRANT_ICON);
- } else if (value instanceof Grant) {
- setIcon(SEC_GRANT_ICON);
- } else if (value instanceof Property) {
- setIcon(null);
- } else if (value instanceof Role) {
- setIcon(SEC_ROLE_ICON);
- } else if (value instanceof Union) {
- setIcon(SEC_UNION_ICON);
- } else if (value instanceof VirtualCube) {
- setIcon(VIRTUAL_CUBE_ICON);
- } else if (value instanceof VirtualCubeMeasure) {
- setIcon(MEASURE_ICON);
- } else {
- setIcon(BlankIcon.getInstance(16, 16));
- }
-
+ setIcon(OSUtils.iconFor((OLAPObject) value));
this.selected = sel;
this.hasFocus = hasFocus;
Added: trunk/src/ca/sqlpower/architect/swingui/olap/OSUtils.java
==============================================================================
--- (empty file)
+++ trunk/src/ca/sqlpower/architect/swingui/olap/OSUtils.java Wed Aug 27
09:22:30 2008
@@ -0,0 +1,133 @@
+/*
+ * 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;
+
+import javax.swing.Icon;
+import javax.swing.ImageIcon;
+
+import ca.sqlpower.architect.olap.OLAPObject;
+import ca.sqlpower.architect.olap.MondrianModel.CalculatedMember;
+import ca.sqlpower.architect.olap.MondrianModel.Cube;
+import ca.sqlpower.architect.olap.MondrianModel.CubeDimension;
+import ca.sqlpower.architect.olap.MondrianModel.CubeGrant;
+import ca.sqlpower.architect.olap.MondrianModel.CubeUsage;
+import ca.sqlpower.architect.olap.MondrianModel.Formula;
+import ca.sqlpower.architect.olap.MondrianModel.Grant;
+import ca.sqlpower.architect.olap.MondrianModel.Hierarchy;
+import ca.sqlpower.architect.olap.MondrianModel.HierarchyGrant;
+import ca.sqlpower.architect.olap.MondrianModel.Level;
+import ca.sqlpower.architect.olap.MondrianModel.Measure;
+import ca.sqlpower.architect.olap.MondrianModel.MemberGrant;
+import ca.sqlpower.architect.olap.MondrianModel.NamedSet;
+import ca.sqlpower.architect.olap.MondrianModel.Property;
+import ca.sqlpower.architect.olap.MondrianModel.Role;
+import ca.sqlpower.architect.olap.MondrianModel.Schema;
+import ca.sqlpower.architect.olap.MondrianModel.SchemaGrant;
+import ca.sqlpower.architect.olap.MondrianModel.Union;
+import ca.sqlpower.architect.olap.MondrianModel.VirtualCube;
+import ca.sqlpower.architect.olap.MondrianModel.VirtualCubeMeasure;
+import ca.sqlpower.swingui.BlankIcon;
+import ca.sqlpower.swingui.SPSUtils;
+
+/**
+ * A collection of utility methods for the OLAP Swing UI.
+ */
+public class OSUtils {
+
+ public static final ImageIcon CUBE_ICON =
SPSUtils.createIcon("olap/cube", "Cube"); //$NON-NLS-1$ //$NON-NLS-2$
+ public static final ImageIcon CUBE_USAGE_ICON =
SPSUtils.createIcon("olap/cubeUsage", "Cube Usage"); //$NON-NLS-1$
//$NON-NLS-2$
+ public static final ImageIcon DIMENSION_ICON =
SPSUtils.createIcon("olap/dimension", "Dimension"); //$NON-NLS-1$
//$NON-NLS-2$
+ public static final ImageIcon FORMULA_ICON =
SPSUtils.createIcon("olap/formula", "Formula"); //$NON-NLS-1$ //$NON-NLS-2$
+ public static final ImageIcon HIERARCHY_ICON =
SPSUtils.createIcon("olap/hierarchy", "Hierarchy"); //$NON-NLS-1$
//$NON-NLS-2$
+ public static final ImageIcon LEVEL_ICON =
SPSUtils.createIcon("olap/level", "Level"); //$NON-NLS-1$ //$NON-NLS-2$
+ public static final ImageIcon LEVEL_PROP_ICON =
SPSUtils.createIcon("olap/levelProperty", "Level Property"); //$NON-NLS-1$
//$NON-NLS-2$
+ public static final ImageIcon MEASURE_ICON =
SPSUtils.createIcon("olap/measure", "Measure"); //$NON-NLS-1$ //$NON-NLS-2$
+ public static final ImageIcon MEASURE_PROP_ICON =
SPSUtils.createIcon("olap/measureProperty", "Measure Property");
//$NON-NLS-1$ //$NON-NLS-2$
+ public static final ImageIcon NAMED_SET_ICON =
SPSUtils.createIcon("olap/namedSet", "Named Set"); //$NON-NLS-1$
//$NON-NLS-2$
+ public static final ImageIcon SCHEMA_ICON =
SPSUtils.createIcon("olap/schema", "Schema"); //$NON-NLS-1$ //$NON-NLS-2$
+ public static final ImageIcon SEC_GRANT_ICON =
SPSUtils.createIcon("olap/securityGrant", "Grant"); //$NON-NLS-1$
//$NON-NLS-2$
+ public static final ImageIcon SEC_CUBE_GRANT_ICON =
SPSUtils.createIcon("olap/cubeGrant", "Cube Grant"); //$NON-NLS-1$
//$NON-NLS-2$
+ public static final ImageIcon SEC_HIERARCHY_GRANT_ICON =
SPSUtils.createIcon("olap/hierarchyGrant", "Hierarchy Grant");
//$NON-NLS-1$ //$NON-NLS-2$
+ public static final ImageIcon SEC_SCHEMA_GRANT_ICON =
SPSUtils.createIcon("olap/schemaGrant", "Schema Grant"); //$NON-NLS-1$
//$NON-NLS-2$
+ public static final ImageIcon SEC_ROLE_ICON =
SPSUtils.createIcon("olap/securityRole", "Role"); //$NON-NLS-1$
//$NON-NLS-2$
+ public static final ImageIcon SEC_UNION_ICON =
SPSUtils.createIcon("olap/securityUnion", "Union"); //$NON-NLS-1$
//$NON-NLS-2$
+ public static final ImageIcon VIRTUAL_CUBE_ICON =
SPSUtils.createIcon("olap/virtualCube", "Virtual Cube"); //$NON-NLS-1$
//$NON-NLS-2$
+
+ /**
+ * Returns the appropriate icon for the given OLAP object.
+ *
+ * @param value
+ * The object you want an icon for
+ * @return The most appropriate icon for the given object. The icon
size
+ * will be 16x16, and it will have an alpha mask. If no
appropriate
+ * icon is available, a completely transparent 16x16 icon will
be
+ * returned.
+ */
+ public static Icon iconFor(OLAPObject value) {
+ if (false) {
+ } else if (value instanceof CalculatedMember) {
+ return FORMULA_ICON;
+ } else if (value instanceof Cube) {
+ return CUBE_ICON;
+ } else if (value instanceof CubeUsage) {
+ return CUBE_USAGE_ICON;
+ } else if (value instanceof CubeDimension) {
+ return DIMENSION_ICON;
+ } else if (value instanceof Formula) {
+ return FORMULA_ICON;
+ } else if (value instanceof Hierarchy) {
+ return HIERARCHY_ICON;
+ } else if (value instanceof Level) {
+ return LEVEL_ICON;
+ } else if (value instanceof Property && value.getParent()
instanceof Level) {
+ return LEVEL_PROP_ICON;
+ } else if (value instanceof Measure) {
+ return MEASURE_ICON;
+ } else if (value instanceof Property && value.getParent()
instanceof Measure) {
+ return MEASURE_PROP_ICON;
+ } else if (value instanceof MemberGrant) {
+ return SEC_GRANT_ICON;
+ } else if (value instanceof NamedSet) {
+ return NAMED_SET_ICON;
+ } else if (value instanceof Schema) {
+ return SCHEMA_ICON;
+ } else if (value instanceof CubeGrant) {
+ return SEC_CUBE_GRANT_ICON;
+// } else if (value instanceof DimensionGrant) { TODO get this icon
+// return SEC_DIMENSION_GRANT_ICON;
+ } else if (value instanceof HierarchyGrant) {
+ return SEC_HIERARCHY_GRANT_ICON;
+ } else if (value instanceof SchemaGrant) {
+ return SEC_SCHEMA_GRANT_ICON;
+ } else if (value instanceof Grant) {
+ return SEC_GRANT_ICON;
+ } else if (value instanceof Role) {
+ return SEC_ROLE_ICON;
+ } else if (value instanceof Union) {
+ return SEC_UNION_ICON;
+ } else if (value instanceof VirtualCube) {
+ return VIRTUAL_CUBE_ICON;
+ } else if (value instanceof VirtualCubeMeasure) {
+ return MEASURE_ICON;
+ }
+
+ return BlankIcon.getInstance(16, 16);
+ }
+}