[95610]  Performance: XSD graphical editor is leaking SWT resources
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/TopLevelComponentEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/TopLevelComponentEditPart.java
index a4e95c0..04b686a 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/TopLevelComponentEditPart.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/TopLevelComponentEditPart.java
@@ -59,6 +59,7 @@
   protected SimpleDirectEditPolicy simpleDirectEditPolicy = new SimpleDirectEditPolicy();
   protected boolean isReadOnly;
   protected boolean isSelected;
+  protected Font font;
   
   protected IFigure createFigure()
   {
@@ -81,7 +82,7 @@
     labelHolder.add(label);
     
     try
-	  {
+	{
       // evil hack to provide underlines
       Object model = getModel();
       
@@ -102,28 +103,29 @@
             Object data = fontData.getClass().getField("data").get(fontData);
 //            System.out.println("data" + data.getClass());
             data.getClass().getField("lfUnderline").setByte(data, (byte)1);
-            Font font = new Font(Display.getCurrent(), fontData);
-            label.setFont(font);        
-
+            font = new Font(Display.getCurrent(), fontData);
+            label.setFont(font);
         }
       }
-	  }
+	}
     catch (Exception e)
-	  {
+	{
 
-	  }
-    //FontData data = label.getFont().getFontData()[0];
-    //data.data.lfUnderline = 1;
-    
-    //RectangleFigure line = new RectangleFigure();    
-    //line.setPreferredSize(2, 1);   
-    //labelHolder.add(line, 1);    
-    
-    //label.getFont().getFontData()[0].setStyle()
+	}
     
     return typeGroup;
   }
   
+  public void deactivate()
+  {
+	  super.deactivate();
+	  if (font != null)
+	  {
+		  font.dispose();
+		  font = null;
+	  }
+  }
+  
   public void refreshVisuals()
   {
     ModelAdapter adapter = XSDModelAdapterFactory.getAdapter(getModel());