diff options
author | kgilmer | 2006-03-12 20:47:51 +0000 |
---|---|---|
committer | kgilmer | 2006-03-12 20:47:51 +0000 |
commit | 79b3057e4bbe94f8ad64b60611507bf51a7813a3 (patch) | |
tree | 399189a8439e193084de8f2079ce432fadbc7902 /doc | |
parent | 4a095b61160274cc3919558d4d4df1541c7bb90b (diff) | |
download | org.eclipse.ecf-79b3057e4bbe94f8ad64b60611507bf51a7813a3.tar.gz org.eclipse.ecf-79b3057e4bbe94f8ad64b60611507bf51a7813a3.tar.xz org.eclipse.ecf-79b3057e4bbe94f8ad64b60611507bf51a7813a3.zip |
Toolbox
Diffstat (limited to 'doc')
8 files changed, 454 insertions, 0 deletions
diff --git a/doc/bundles/org.eclipse.ecf.tutorial/src/org/eclipse/ecf/tutorial/scribbleshare/toolbox/AbstractTool.java b/doc/bundles/org.eclipse.ecf.tutorial/src/org/eclipse/ecf/tutorial/scribbleshare/toolbox/AbstractTool.java new file mode 100644 index 000000000..b60ac67ad --- /dev/null +++ b/doc/bundles/org.eclipse.ecf.tutorial/src/org/eclipse/ecf/tutorial/scribbleshare/toolbox/AbstractTool.java @@ -0,0 +1,62 @@ +package org.eclipse.ecf.tutorial.scribbleshare.toolbox; + +import java.io.Serializable; + +import org.eclipse.jface.action.Action; +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.GC; +import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.widgets.Canvas; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Event; + +abstract public class AbstractTool implements Serializable { + protected int startX, startY, endX, endY; + + protected boolean penDown = false; + + protected boolean isComplete = false; + + protected DrawSettings drawSettings; +/* + public void setCoordinates(int startX, int startY, int endX, int endY) { + this.startX = startX; + this.startY = startY; + this.endX = endX; + this.endY = endY; + } */ + + abstract public String getName(); + + abstract public Image getImage(); + + abstract public void draw(final Canvas canvas); + + abstract public void handleUIEvent(Event event, Canvas canvas); + + protected void setupGC(GC gc) { + gc.setLineWidth(drawSettings.getPenWidth()); + if (drawSettings.isAntialias()) { + gc.setAntialias(SWT.ON); + } else { + gc.setAntialias(SWT.OFF); + } + + } + + public boolean isPenDown() { + return penDown; + } + + public boolean isComplete() { + return isComplete; + } + + public void setComplete(boolean b) { + isComplete = b; + } + + public void setDrawSettings(DrawSettings drawSettings) { + this.drawSettings = drawSettings; + } +} diff --git a/doc/bundles/org.eclipse.ecf.tutorial/src/org/eclipse/ecf/tutorial/scribbleshare/toolbox/Box.java b/doc/bundles/org.eclipse.ecf.tutorial/src/org/eclipse/ecf/tutorial/scribbleshare/toolbox/Box.java new file mode 100644 index 000000000..da79faa78 --- /dev/null +++ b/doc/bundles/org.eclipse.ecf.tutorial/src/org/eclipse/ecf/tutorial/scribbleshare/toolbox/Box.java @@ -0,0 +1,72 @@ +package org.eclipse.ecf.tutorial.scribbleshare.toolbox; + +import org.eclipse.jface.action.Action; +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Color; +import org.eclipse.swt.graphics.GC; +import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.graphics.Rectangle; +import org.eclipse.swt.widgets.Canvas; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Event; + +public class Box extends AbstractTool { + + private static final long serialVersionUID = -165859440014182966L; + + //private boolean dragging = false; + + private boolean dragging = false; + + public String getName() { + return "Box"; + } + + public Image getImage() { + return null; + } + + public void draw(final Canvas canvas) { + Display display = canvas.getDisplay(); + + display.asyncExec(new Runnable() { + public void run() { + GC gc = new GC(canvas); + setupGC(gc); + // gc.setForeground(new Color(display,new RGB(128,128,128))); + gc.drawRectangle(startX, startY, endX - startX, endY - startY); + gc.dispose(); + } + }); + + } + + public void handleUIEvent(Event event, Canvas canvas) { + switch (event.type) { + case SWT.MouseUp: + draw(canvas); + penDown = false; + dragging = false; + isComplete = true; + break; + case SWT.MouseMove: + if (dragging) { + + endX = event.x; + endY = event.y; + + penDown = true; + } + break; + case SWT.MouseDown: + if (!dragging) { + startX = event.x; + startY = event.y; + dragging = true; + isComplete = false; + } + break; + } + + } +} diff --git a/doc/bundles/org.eclipse.ecf.tutorial/src/org/eclipse/ecf/tutorial/scribbleshare/toolbox/DrawSettings.java b/doc/bundles/org.eclipse.ecf.tutorial/src/org/eclipse/ecf/tutorial/scribbleshare/toolbox/DrawSettings.java new file mode 100644 index 000000000..0db3cb7c2 --- /dev/null +++ b/doc/bundles/org.eclipse.ecf.tutorial/src/org/eclipse/ecf/tutorial/scribbleshare/toolbox/DrawSettings.java @@ -0,0 +1,53 @@ +package org.eclipse.ecf.tutorial.scribbleshare.toolbox; + +import java.io.Serializable; + +import org.eclipse.swt.graphics.RGB; + +public class DrawSettings implements Serializable { + private int penWidth; + + private RGB backgroundColor; + + private RGB forgroundColor; + + private boolean isAntialaised; + + public DrawSettings() { + penWidth = 1; + backgroundColor = new RGB(255, 255, 255); + forgroundColor = new RGB(0, 0, 0); + } + + public RGB getBackgroundColor() { + return backgroundColor; + } + + public void setBackgroundColor(RGB backgroundColor) { + this.backgroundColor = backgroundColor; + } + + public RGB getForgroundColor() { + return forgroundColor; + } + + public void setForgroundColor(RGB forgroundColor) { + this.forgroundColor = forgroundColor; + } + + public int getPenWidth() { + return penWidth; + } + + public void setPenWidth(int penWidth) { + this.penWidth = penWidth; + } + + public boolean isAntialias() { + return isAntialaised; + } + + public void setAntialias(boolean isAntialaised) { + this.isAntialaised = isAntialaised; + } +} diff --git a/doc/bundles/org.eclipse.ecf.tutorial/src/org/eclipse/ecf/tutorial/scribbleshare/toolbox/Line.java b/doc/bundles/org.eclipse.ecf.tutorial/src/org/eclipse/ecf/tutorial/scribbleshare/toolbox/Line.java new file mode 100644 index 000000000..596743c31 --- /dev/null +++ b/doc/bundles/org.eclipse.ecf.tutorial/src/org/eclipse/ecf/tutorial/scribbleshare/toolbox/Line.java @@ -0,0 +1,72 @@ +package org.eclipse.ecf.tutorial.scribbleshare.toolbox; + +import org.eclipse.jface.action.Action; +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Color; +import org.eclipse.swt.graphics.GC; +import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.graphics.Rectangle; +import org.eclipse.swt.widgets.Canvas; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Event; + +public class Line extends AbstractTool { + + private static final long serialVersionUID = -165859440014182966L; + + //private boolean dragging = false; + + private boolean dragging = false; + + public String getName() { + return "Line"; + } + + public Image getImage() { + return null; + } + + public void draw(final Canvas canvas) { + Display display = canvas.getDisplay(); + + display.asyncExec(new Runnable() { + public void run() { + GC gc = new GC(canvas); + setupGC(gc); + // gc.setForeground(new Color(display,new RGB(128,128,128))); + gc.drawLine(startX, startY, endX, endY); + gc.dispose(); + } + }); + + } + + public void handleUIEvent(Event event, Canvas canvas) { + switch (event.type) { + case SWT.MouseUp: + draw(canvas); + penDown = false; + dragging = false; + isComplete = true; + break; + case SWT.MouseMove: + if (dragging) { + + endX = event.x; + endY = event.y; + + penDown = true; + } + break; + case SWT.MouseDown: + if (!dragging) { + startX = event.x; + startY = event.y; + dragging = true; + isComplete = false; + } + break; + } + + } +} diff --git a/doc/bundles/org.eclipse.ecf.tutorial/src/org/eclipse/ecf/tutorial/scribbleshare/toolbox/ListContentProvider.java b/doc/bundles/org.eclipse.ecf.tutorial/src/org/eclipse/ecf/tutorial/scribbleshare/toolbox/ListContentProvider.java new file mode 100644 index 000000000..92ba620c1 --- /dev/null +++ b/doc/bundles/org.eclipse.ecf.tutorial/src/org/eclipse/ecf/tutorial/scribbleshare/toolbox/ListContentProvider.java @@ -0,0 +1,20 @@ +package org.eclipse.ecf.tutorial.scribbleshare.toolbox; + +import java.util.List; + +import org.eclipse.jface.viewers.IStructuredContentProvider; +import org.eclipse.jface.viewers.Viewer; + +public class ListContentProvider implements IStructuredContentProvider { + + public Object[] getElements(Object inputElement) { + + return ((List)inputElement).toArray(); + } + + public void dispose() { + } + + public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { + } +} diff --git a/doc/bundles/org.eclipse.ecf.tutorial/src/org/eclipse/ecf/tutorial/scribbleshare/toolbox/Oval.java b/doc/bundles/org.eclipse.ecf.tutorial/src/org/eclipse/ecf/tutorial/scribbleshare/toolbox/Oval.java new file mode 100644 index 000000000..badf7ed2f --- /dev/null +++ b/doc/bundles/org.eclipse.ecf.tutorial/src/org/eclipse/ecf/tutorial/scribbleshare/toolbox/Oval.java @@ -0,0 +1,72 @@ +package org.eclipse.ecf.tutorial.scribbleshare.toolbox; + +import org.eclipse.jface.action.Action; +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Color; +import org.eclipse.swt.graphics.GC; +import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.graphics.Rectangle; +import org.eclipse.swt.widgets.Canvas; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Event; + +public class Oval extends AbstractTool { + + private static final long serialVersionUID = -165859440014182966L; + + //private boolean dragging = false; + + private boolean dragging = false; + + public String getName() { + return "Oval"; + } + + public Image getImage() { + return null; + } + + public void draw(final Canvas canvas) { + Display display = canvas.getDisplay(); + + display.asyncExec(new Runnable() { + public void run() { + GC gc = new GC(canvas); + setupGC(gc); + // gc.setForeground(new Color(display,new RGB(128,128,128))); + gc.drawOval(startX, startY, endX - startX, endY - startY); + gc.dispose(); + } + }); + + } + + public void handleUIEvent(Event event, Canvas canvas) { + switch (event.type) { + case SWT.MouseUp: + draw(canvas); + penDown = false; + dragging = false; + isComplete = true; + break; + case SWT.MouseMove: + if (dragging) { + + endX = event.x; + endY = event.y; + + penDown = true; + } + break; + case SWT.MouseDown: + if (!dragging) { + startX = event.x; + startY = event.y; + dragging = true; + isComplete = false; + } + break; + } + + } +} diff --git a/doc/bundles/org.eclipse.ecf.tutorial/src/org/eclipse/ecf/tutorial/scribbleshare/toolbox/Pencil.java b/doc/bundles/org.eclipse.ecf.tutorial/src/org/eclipse/ecf/tutorial/scribbleshare/toolbox/Pencil.java new file mode 100644 index 000000000..527a799e1 --- /dev/null +++ b/doc/bundles/org.eclipse.ecf.tutorial/src/org/eclipse/ecf/tutorial/scribbleshare/toolbox/Pencil.java @@ -0,0 +1,65 @@ +package org.eclipse.ecf.tutorial.scribbleshare.toolbox; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.GC; +import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.widgets.Canvas; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Event; + + +public class Pencil extends AbstractTool { + private static final long serialVersionUID = -111458978163259455L; + private static int lastX; + private static int lastY; + + public Pencil() { + isComplete = true; + } + + public String getName() { + return "Pencil"; + } + + public Image getImage() { + // TODO Auto-generated method stub + return null; + } + + public void draw(final Canvas canvas) { + Display display = canvas.getDisplay(); + + display.asyncExec(new Runnable() { + public void run() { + GC gc = new GC(canvas); + setupGC(gc); + //gc.setForeground(new Color(display,new RGB(128,128,128))); + gc.drawLine(endX, endY, startX, startY); + gc.dispose(); + }}); + } + + public void handleUIEvent(Event event, Canvas canvas) { + + + switch (event.type) { + case SWT.MouseMove: + if ((event.stateMask & SWT.BUTTON1) == 0) break; + + startX = event.x; + startY = event.y; + endX = lastX; + endY = lastY; + isComplete = true; + draw(canvas); + case SWT.MouseDown: + lastX = event.x; + lastY = event.y; + penDown = true; + break; + case SWT.MouseUp: + penDown = false; + } + + } +} diff --git a/doc/bundles/org.eclipse.ecf.tutorial/src/org/eclipse/ecf/tutorial/scribbleshare/toolbox/ToolboxLabelProvider.java b/doc/bundles/org.eclipse.ecf.tutorial/src/org/eclipse/ecf/tutorial/scribbleshare/toolbox/ToolboxLabelProvider.java new file mode 100644 index 000000000..e82cb918d --- /dev/null +++ b/doc/bundles/org.eclipse.ecf.tutorial/src/org/eclipse/ecf/tutorial/scribbleshare/toolbox/ToolboxLabelProvider.java @@ -0,0 +1,38 @@ +package org.eclipse.ecf.tutorial.scribbleshare.toolbox; + +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.viewers.IBaseLabelProvider; +import org.eclipse.jface.viewers.ILabelProviderListener; +import org.eclipse.jface.viewers.ITableLabelProvider; +import org.eclipse.swt.graphics.Image; + +public class ToolboxLabelProvider implements ITableLabelProvider { + + public Image getColumnImage(Object element, int columnIndex) { + if (element instanceof AbstractTool) { + return ((AbstractTool)element).getImage(); + } + return null; + } + + public String getColumnText(Object element, int columnIndex) { + if (element instanceof AbstractTool) { + return ((AbstractTool)element).getName(); + } + return "[UNKNOWN TYPE IN LABEL PROVIDER: " + element.getClass().toString() + "]"; + } + + public void addListener(ILabelProviderListener listener) { + } + + public void dispose() { + } + + public boolean isLabelProperty(Object element, String property) { + return false; + } + + public void removeListener(ILabelProviderListener listener) { + } + +} |