Author: max.andersen(a)jboss.com
Date: 2008-06-06 07:17:25 -0400 (Fri, 06 Jun 2008)
New Revision: 8607
Added:
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/figures/xpl/CompressNameUtil.java
Modified:
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/edit/ExceptionEditPart.java
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/edit/ParamEditPart.java
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/figures/ExceptionFigure.java
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/figures/NodeFigure.java
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/figures/ParamFigure.java
Log:
JBIDE-2280 exception figure made less bulky
+ svn ignore bin
Property changes on: trunk/seam/plugins/org.jboss.tools.seam.pages.xml
___________________________________________________________________
Name: svn:ignore
+ bin
Property changes on: trunk/seam/plugins/org.jboss.tools.seam.ui.pages
___________________________________________________________________
Name: svn:ignore
+ bin
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/edit/ExceptionEditPart.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/edit/ExceptionEditPart.java 2008-06-06
10:58:56 UTC (rev 8606)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/edit/ExceptionEditPart.java 2008-06-06
11:17:25 UTC (rev 8607)
@@ -36,6 +36,7 @@
import org.jboss.tools.seam.ui.pages.editor.ecore.pages.PageException;
import org.jboss.tools.seam.ui.pages.editor.figures.ExceptionFigure;
import org.jboss.tools.seam.ui.pages.editor.figures.NodeFigure;
+import org.jboss.tools.seam.ui.pages.editor.figures.xpl.CompressNameUtil;
public class ExceptionEditPart extends PagesEditPart implements PropertyChangeListener,
EditPartListener, Adapter {
private NodeFigure fig = null;
@@ -148,10 +149,19 @@
+ /** This returns the label to use when rendering the Exception in a readonly view.
+ * Converts org.model.Exception to o.m.Exception to save visual space
+ **/
+ String getExceptionReadOnlyLabel() {
+ if(getElementModel()==null || getElementModel().getName() == null) {
+ return "Unknown Exception";
+ } else {
+ return CompressNameUtil.getCompressedName(getElementModel().getName());
+ }
+ }
protected void refreshVisuals() {
Point loc = getExceptionModel().getLocation();
- String text = getExceptionModel().getName();
- if(text == null) text="Exception";
+ String text = getExceptionReadOnlyLabel();
int width = getIconWidth()+FigureUtilities.getTextExtents(text,
NodeFigure.exceptionFont).width;
size = new Dimension(width, getVisualHeight());
adjustForGrid(loc);
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/edit/ParamEditPart.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/edit/ParamEditPart.java 2008-06-06
10:58:56 UTC (rev 8606)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/edit/ParamEditPart.java 2008-06-06
11:17:25 UTC (rev 8607)
@@ -153,7 +153,7 @@
protected void refreshVisuals() {
Point loc = getExceptionModel().getLocation();
String text = getExceptionModel().getName();
- if(text == null) text="Exception";
+ if(text == null) text="Param";
int width = getIconWidth()+FigureUtilities.getTextExtents(text,
NodeFigure.exceptionFont).width;
size = new Dimension(width, getVisualHeight());
adjustForGrid(loc);
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/figures/ExceptionFigure.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/figures/ExceptionFigure.java 2008-06-06
10:58:56 UTC (rev 8606)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/figures/ExceptionFigure.java 2008-06-06
11:17:25 UTC (rev 8607)
@@ -19,11 +19,14 @@
import org.eclipse.draw2d.geometry.Insets;
import org.eclipse.draw2d.geometry.Rectangle;
import org.eclipse.gef.handles.HandleBounds;
+import org.eclipse.jdt.core.IPackageFragment;
+import org.eclipse.jface.viewers.StyledString;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Image;
import org.jboss.tools.common.gef.GEFGraphicalViewer;
import org.jboss.tools.seam.ui.pages.editor.ecore.pages.PageException;
import org.jboss.tools.seam.ui.pages.editor.edit.ExceptionEditPart;
+import org.jboss.tools.seam.ui.pages.editor.figures.xpl.CompressNameUtil;
import org.jboss.tools.seam.ui.pages.editor.figures.xpl.FixedConnectionAnchor;
import org.jboss.tools.seam.ui.pages.editor.print.PrintIconHelper;
@@ -118,15 +121,24 @@
if(exc != null){
g.setFont(exceptionFont);
- if(exc.getName() != null)
- g.drawString(exc.getName(), 27, 3);
- else
- g.drawString("Exception", 27, 3);
+ g.drawString(getExceptionReadOnlyLabel(), 27, 3);
}
}
+ /** This returns the label to use when rendering the Exception in a readonly view.
+ * Converts org.model.Exception to o.m.Exception to save visual space
+ **/
+ String getExceptionReadOnlyLabel() {
+ if(exc==null || exc.getName() == null) {
+ return "Unknown Exception";
+ } else {
+ return CompressNameUtil.getCompressedName(exc.getName());
+ }
+ }
+
+
class GroupBorder extends LineBorder {
public GroupBorder(Color color) {
super(color);
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/figures/NodeFigure.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/figures/NodeFigure.java 2008-06-06
10:58:56 UTC (rev 8606)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/figures/NodeFigure.java 2008-06-06
11:17:25 UTC (rev 8607)
@@ -10,6 +10,8 @@
******************************************************************************/
package org.jboss.tools.seam.ui.pages.editor.figures;
+import javax.swing.text.StyleConstants.ColorConstants;
+
import org.eclipse.draw2d.FigureUtilities;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
@@ -57,7 +59,7 @@
public static final Color exceptionBackgroundColor = new Color(null, 0xff, 0xe3, 0xe7);
- public static final Color exceptionForegroundColor = new Color(null, 0x99, 0x07, 0x02);
+ public static final Color exceptionForegroundColor = blackColor; //new Color(null, 0x99,
0x07, 0x02);
public static final Color button1Color = new Color(null, 0xff, 0xf6, 0xc8);
public static final Color button2Color = new Color(null, 0x98, 0x99, 0x98);
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/figures/ParamFigure.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/figures/ParamFigure.java 2008-06-06
10:58:56 UTC (rev 8606)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/figures/ParamFigure.java 2008-06-06
11:17:25 UTC (rev 8607)
@@ -116,7 +116,7 @@
if(exc.getName() != null)
g.drawString(exc.getName(), 27, 3);
else
- g.drawString("Exception", 27, 3);
+ g.drawString("Param", 27, 3);
}
Added:
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/figures/xpl/CompressNameUtil.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/figures/xpl/CompressNameUtil.java
(rev 0)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/figures/xpl/CompressNameUtil.java 2008-06-06
11:17:25 UTC (rev 8607)
@@ -0,0 +1,72 @@
+package org.jboss.tools.seam.ui.pages.editor.figures.xpl;
+
+/** based on code in JavaElementLabel */
+public class CompressNameUtil {
+
+ /*
+ * Package name compression
+ */
+ private static String fgNamePattern= ""; //$NON-NLS-1$
+ private static String fgNamePrefix;
+ private static String fgNamePostfix;
+ private static int fgNameChars;
+ private static int fgNameLength= -1;
+
+ public static String getCompressedName(String className) {
+ StringBuffer result = new StringBuffer();
+ refreshPackageNamePattern();
+ if (fgNameLength == 0) {
+ result.append(className);
+ return result.toString();
+ }
+ String name= className;
+ int start= 0;
+ int dot= name.indexOf('.', start);
+ while (dot > 0) {
+ if (dot - start > fgNameLength-1) {
+ result.append(fgNamePrefix);
+ if (fgNameChars > 0)
+ result.append(name.substring(start, Math.min(start+ fgNameChars, dot)));
+ result.append(fgNamePostfix);
+ } else
+ result.append(name.substring(start, dot + 1));
+ start= dot + 1;
+ dot= name.indexOf('.', start);
+ }
+ result.append(name.substring(start));
+ return result.toString();
+ }
+
+ private static void refreshPackageNamePattern() {
+ String pattern= "1.";//getPkgNamePatternForPackagesView(); TODO: put in a
preference somewhere
+ final String EMPTY_STRING= ""; //$NON-NLS-1$
+ if (pattern.equals(fgNamePattern))
+ return;
+ else if (pattern.length() == 0) {
+ fgNamePattern= EMPTY_STRING;
+ fgNameLength= -1;
+ return;
+ }
+ fgNamePattern= pattern;
+ int i= 0;
+ fgNameChars= 0;
+ fgNamePrefix= EMPTY_STRING;
+ fgNamePostfix= EMPTY_STRING;
+ while (i < pattern.length()) {
+ char ch= pattern.charAt(i);
+ if (Character.isDigit(ch)) {
+ fgNameChars= ch-48;
+ if (i > 0)
+ fgNamePrefix= pattern.substring(0, i);
+ if (i >= 0)
+ fgNamePostfix= pattern.substring(i+1);
+ fgNameLength= fgNamePrefix.length() + fgNameChars + fgNamePostfix.length();
+ return;
+ }
+ i++;
+ }
+ fgNamePrefix= pattern;
+ fgNameLength= pattern.length();
+ }
+
+}