1 26 27 package org.nightlabs.editor2d.viewer.awt; 28 29 import java.awt.BorderLayout ; 30 import java.awt.Component ; 31 import java.awt.Frame ; 32 33 import org.eclipse.swt.SWT; 34 import org.eclipse.swt.awt.SWT_AWT; 35 import org.eclipse.swt.widgets.Composite; 36 37 import org.nightlabs.editor2d.DrawComponent; 38 import org.nightlabs.editor2d.viewer.AbstractCanvasComposite; 39 import org.nightlabs.editor2d.viewer.IAutoScrollSupport; 40 import org.nightlabs.editor2d.viewer.IBufferedCanvas; 41 import org.nightlabs.editor2d.viewer.ICanvas; 42 import org.nightlabs.editor2d.viewer.IMouseManager; 43 import org.nightlabs.editor2d.viewer.IViewer; 44 import org.nightlabs.editor2d.viewer.IViewport; 45 46 public class AWTCanvasComposite 47 extends AbstractCanvasComposite 48 implements IComponentViewer 49 { 50 public static int styleFlag = SWT.EMBEDDED; 52 public AWTCanvasComposite(Composite parent, int style, DrawComponent dc) 53 { 54 super(parent, style | styleFlag, dc); 55 } 56 57 public AWTCanvasComposite(Composite parent, int style, DrawComponent dc, boolean autoScroll) 58 { 59 super(parent, style | styleFlag, dc, autoScroll); 60 } 62 63 public Component getComponent() { 64 return (Component ) getCanvas(); 65 } 66 67 protected IAutoScrollSupport initAutoScrollSupport() 68 { 69 IAutoScrollSupport autoScrollSupport = new AWTCanvasAutoScrollSupport(getComponent()); 70 autoScrollSupport.setScrollStep(10); 71 autoScrollSupport.setTimerDelay(5); 72 return autoScrollSupport; 73 } 74 75 protected ICanvas createCanvas(Composite parent) 76 { 77 Frame frame = SWT_AWT.new_Frame(parent); 78 frame.setLayout(new BorderLayout ()); 79 DisplayPanel displayPanel = new DisplayPanel(drawComponent); 80 frame.add(displayPanel, BorderLayout.CENTER); 81 return displayPanel; 82 } 83 84 public IMouseManager initMouseManager(IViewer viewer) { 85 return new AWTMouseManager(viewer, getComponent()); 86 } 87 88 121 public IBufferedCanvas getBufferedCanvas() { 122 return (IBufferedCanvas) getCanvas(); 123 } 124 125 public IViewport getViewport() { 126 return (IViewport) getCanvas(); 127 } 128 129 public void updateCanvas() 130 { 131 if (canvas != null) 132 getBufferedCanvas().notifyChange(); 133 } 134 135 } 136 | Popular Tags |