-package jp.sourceforge.moreemacs.handlers;\r
-\r
-import java.util.regex.Pattern;\r
-\r
-import jp.sourceforge.moreemacs.MoreEmacs;\r
-\r
-import org.eclipse.core.commands.AbstractHandler;\r
-import org.eclipse.core.commands.Command;\r
-import org.eclipse.core.commands.ExecutionEvent;\r
-import org.eclipse.core.commands.ExecutionException;\r
-import org.eclipse.ui.IWorkbenchWindow;\r
-import org.eclipse.ui.handlers.HandlerUtil;\r
-\r
-public final class CommandHandler extends AbstractHandler {\r
-\r
- @Override\r
- public Object execute(ExecutionEvent event) throws ExecutionException {\r
- IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindow(event);\r
-\r
- Execution exe = newExecution(event);\r
- if(!exe.init(window)) {\r
- return null;\r
- }\r
- try {\r
- exe.execute();\r
- } catch (Exception e) {\r
- throw new ExecutionException(e.getMessage(), e);\r
- }\r
-\r
- return null;\r
- }\r
- \r
- private Execution newExecution(ExecutionEvent event) throws ExecutionException {\r
- try {\r
- String className = getExecutionClassName(event);\r
- Class<?> clazz = Class.forName(className);\r
- Object obj = clazz.newInstance();\r
- if(!(obj instanceof Execution)) {\r
- throw new ExecutionException("the class "+clazz.getName()+\r
- " does not implements Execution.");\r
- }\r
- return (Execution)obj;\r
- } catch (ClassNotFoundException e) {\r
- throw new ExecutionException(e.getMessage(), e);\r
- } catch (InstantiationException e) {\r
- throw new ExecutionException(e.getMessage(), e);\r
- } catch (IllegalAccessException e) {\r
- throw new ExecutionException(e.getMessage(), e);\r
- }\r
- \r
- }\r
- \r
- // naming strategy will be separated to another class.\r
- private static final String COMMAND_PREFIX_QUOTED = Pattern.quote(\r
- MoreEmacs.class.getPackage().getName());\r
- private static final String HANDLER_PREFIX = CommandHandler.class.getPackage().getName();\r
- private static final String HANDLER_SUFFIX = "Execution";\r
- private static String getExecutionClassName(ExecutionEvent event) {\r
- Command command = event.getCommand();\r
- String className = command.getId()\r
- .replaceFirst(COMMAND_PREFIX_QUOTED, HANDLER_PREFIX)\r
- +HANDLER_SUFFIX;\r
- \r
- \r
- return className;\r
- }\r
-\r
-}\r
+package jp.sourceforge.moreemacs.handlers;
+
+import java.util.regex.Pattern;
+
+import jp.sourceforge.moreemacs.MoreEmacs;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.Command;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+public final class CommandHandler extends AbstractHandler {
+
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindow(event);
+
+ Execution exe = newExecution(event);
+ if(!exe.init(window)) {
+ return null;
+ }
+ try {
+ exe.execute();
+ } catch (Exception e) {
+ throw new ExecutionException(e.getMessage(), e);
+ }
+
+ return null;
+ }
+
+ private Execution newExecution(ExecutionEvent event) throws ExecutionException {
+ try {
+ String className = getExecutionClassName(event);
+ Class<?> clazz = Class.forName(className);
+ Object obj = clazz.newInstance();
+ if(!(obj instanceof Execution)) {
+ throw new ExecutionException("the class "+clazz.getName()+
+ " does not implements Execution.");
+ }
+ return (Execution)obj;
+ } catch (ClassNotFoundException e) {
+ throw new ExecutionException(e.getMessage(), e);
+ } catch (InstantiationException e) {
+ throw new ExecutionException(e.getMessage(), e);
+ } catch (IllegalAccessException e) {
+ throw new ExecutionException(e.getMessage(), e);
+ }
+
+ }
+
+ // naming strategy will be separated to another class.
+ private static final String COMMAND_PREFIX_QUOTED = Pattern.quote(
+ MoreEmacs.class.getPackage().getName());
+ private static final String HANDLER_PREFIX = CommandHandler.class.getPackage().getName();
+ private static final String HANDLER_SUFFIX = "Execution";
+ private static String getExecutionClassName(ExecutionEvent event) {
+ Command command = event.getCommand();
+ String className = command.getId()
+ .replaceFirst(COMMAND_PREFIX_QUOTED, HANDLER_PREFIX)
+ +HANDLER_SUFFIX;
+
+
+ return className;
+ }
+
+}