|
From: <pat...@us...> - 2010-07-21 03:50:43
|
Revision: 1093
http://cishell.svn.sourceforge.net/cishell/?rev=1093&view=rev
Author: pataphil
Date: 2010-07-21 03:50:35 +0000 (Wed, 21 Jul 2010)
Log Message:
-----------
* Added GUIBuilderUtilities.setCancelable().
Modified Paths:
--------------
trunk/core/org.cishell.utilities/src/org/cishell/utilities/swt/GUIBuilderUtilities.java
Added Paths:
-----------
trunk/core/org.cishell.utilities/src/org/cishell/utilities/ObjectContainer.java
trunk/core/org.cishell.utilities/src/org/cishell/utilities/swt/GUICanceledException.java
Added: trunk/core/org.cishell.utilities/src/org/cishell/utilities/ObjectContainer.java
===================================================================
--- trunk/core/org.cishell.utilities/src/org/cishell/utilities/ObjectContainer.java (rev 0)
+++ trunk/core/org.cishell.utilities/src/org/cishell/utilities/ObjectContainer.java 2010-07-21 03:50:35 UTC (rev 1093)
@@ -0,0 +1,12 @@
+package org.cishell.utilities;
+
+public class ObjectContainer<T> {
+ public T object;
+
+ public ObjectContainer() {
+ }
+
+ public ObjectContainer(T object) {
+ this.object = object;
+ }
+};
\ No newline at end of file
Modified: trunk/core/org.cishell.utilities/src/org/cishell/utilities/swt/GUIBuilderUtilities.java
===================================================================
--- trunk/core/org.cishell.utilities/src/org/cishell/utilities/swt/GUIBuilderUtilities.java 2010-07-21 03:49:14 UTC (rev 1092)
+++ trunk/core/org.cishell.utilities/src/org/cishell/utilities/swt/GUIBuilderUtilities.java 2010-07-21 03:50:35 UTC (rev 1093)
@@ -1,9 +1,14 @@
package org.cishell.utilities.swt;
+import org.cishell.utilities.ObjectContainer;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ShellEvent;
+import org.eclipse.swt.events.ShellListener;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
public class GUIBuilderUtilities {
@@ -75,4 +80,45 @@
public static void clearSpacing(GridLayout layout) {
layout.horizontalSpacing = layout.verticalSpacing = 0;
}
+
+ public static void setCancelable(
+ final Shell shell, final ObjectContainer<GUICanceledException> exceptionThrown) {
+ shell.addListener(SWT.Traverse, new Listener() {
+ public void handleEvent(Event event) {
+ switch (event.detail) {
+ case SWT.TRAVERSE_ESCAPE:
+ shell.close();
+ event.detail = SWT.TRAVERSE_NONE;
+ event.doit = false;
+
+// if (exceptionThrown != null) {
+// String exceptionMessage = "Canceled by user.";
+// exceptionThrown.object = new GUICanceledException(exceptionMessage);
+// }
+
+ break;
+ }
+ }
+ });
+ shell.addShellListener(new ShellListener() {
+ public void shellActivated(ShellEvent event) {
+ }
+
+ public void shellClosed(ShellEvent event) {
+ if (exceptionThrown != null) {
+ String exceptionMessage = "Canceled by user.";
+ exceptionThrown.object = new GUICanceledException(exceptionMessage);
+ }
+ }
+
+ public void shellDeactivated(ShellEvent event) {
+ }
+
+ public void shellDeiconified(ShellEvent event) {
+ }
+
+ public void shellIconified(ShellEvent event) {
+ }
+ });
+ }
}
\ No newline at end of file
Added: trunk/core/org.cishell.utilities/src/org/cishell/utilities/swt/GUICanceledException.java
===================================================================
--- trunk/core/org.cishell.utilities/src/org/cishell/utilities/swt/GUICanceledException.java (rev 0)
+++ trunk/core/org.cishell.utilities/src/org/cishell/utilities/swt/GUICanceledException.java 2010-07-21 03:50:35 UTC (rev 1093)
@@ -0,0 +1,21 @@
+package org.cishell.utilities.swt;
+
+public class GUICanceledException extends Exception {
+ private static final long serialVersionUID = 1L;
+
+ public GUICanceledException() {
+ super();
+ }
+
+ public GUICanceledException(String arg0) {
+ super(arg0);
+ }
+
+ public GUICanceledException(Throwable arg0) {
+ super(arg0);
+ }
+
+ public GUICanceledException(String arg0, Throwable arg1) {
+ super(arg0, arg1);
+ }
+}
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|