Ejemplo n.º 1
0
  private void makeActions() {
    executeAction = new ExecuteQueryAction();

    IWorkbenchWindow window = getEditorSite().getWorkbenchWindow();
    IWorkbenchAction globalAction = ActionFactory.COPY.create(window);
    copyQueryStringAction =
        new Action() {
          @Override
          public void run() {
            queryString.copy();
          }
        };
    copyQueryStringAction.setAccelerator(globalAction.getAccelerator());

    contentAssistAction =
        new Action() {
          @Override
          public void run() {
            queryViewer.doOperation(ISourceViewer.CONTENTASSIST_PROPOSALS);
          }
        };
    // Install the standard text actions.
    addAction(
        ActionFactory.CUT, ITextOperationTarget.CUT, "org.eclipse.ui.edit.cut"); // $NON-NLS-1$
    addAction(
        ActionFactory.COPY, ITextOperationTarget.COPY, "org.eclipse.ui.edit.copy"); // $NON-NLS-1$
    addAction(
        ActionFactory.PASTE,
        ITextOperationTarget.PASTE,
        "org.eclipse.ui.edit.paste"); //$NON-NLS-1$
    addAction(
        ActionFactory.DELETE,
        ITextOperationTarget.DELETE,
        "org.eclipse.ui.edit.delete"); //$NON-NLS-1$
    addAction(
        ActionFactory.SELECT_ALL,
        ITextOperationTarget.SELECT_ALL,
        "org.eclipse.ui.edit.selectAll"); //$NON-NLS-1$
    undo =
        addAction(
            ActionFactory.UNDO,
            ITextOperationTarget.UNDO,
            "org.eclipse.ui.edit.undo"); //$NON-NLS-1$
    redo =
        addAction(
            ActionFactory.REDO,
            ITextOperationTarget.REDO,
            "org.eclipse.ui.edit.redo"); //$NON-NLS-1$
  }
  protected void makeActions(final IWorkbenchWindow window) {
    // Creates the actions and registers them.
    // Registering is needed to ensure that key bindings work.
    // The corresponding commands keybindings are defined in the plugin.xml
    // file.
    // Registering also provides automatic disposal of the actions when
    // the window is closed.

    this.window = window;

    exitAction = ActionFactory.QUIT.create(window);
    register(exitAction);
    {
      closeAction = ActionFactory.CLOSE.create(window);
      register(closeAction);
    }
    {
      closeAllAction = ActionFactory.CLOSE_ALL.create(window);
      register(closeAllAction);
    }
    {
      saveAction = ActionFactory.SAVE.create(window);
      register(saveAction);
    }
    {
      saveAsAction = ActionFactory.SAVE_AS.create(window);
      register(saveAsAction);
    }
    {
      saveAllAction = ActionFactory.SAVE_ALL.create(window);
      register(saveAllAction);
    }
    sizeAction1 =
        new Action("176x208") {
          public void run() {
            Settings.setScreenSize(176, 208);
          }
        };

    sizeAction2 =
        new Action("240x320") {
          public void run() {
            Settings.setScreenSize(240, 320);
          }
        };

    sizeAction3 =
        new Action("320x240") {
          public void run() {
            Settings.setScreenSize(320, 240);
          }
        };

    sizeAction4 =
        new Action("480x320") {
          public void run() {
            Settings.setScreenSize(480, 320);
          }
        };

    sizeAction5 =
        new Action("640x360") {
          public void run() {
            Settings.setScreenSize(640, 360);
          }
        };

    sizeAction6 =
        new Action("960x640") {
          public void run() {
            Settings.setScreenSize(960, 640);
          }
        };

    undoAction =
        new Action("&Undo") {
          public void run() {
            this.firePropertyChange("chosen", this, this);
          }
        };
    undoAction.setEnabled(false);
    undoAction.setImageDescriptor(
        ResourceManager.getPluginImageDescriptor(
            WorkshopPlugin.getDefault(), "icons/undo_edit(1).gif"));
    undoAction.setDisabledImageDescriptor(
        ResourceManager.getPluginImageDescriptor(
            WorkshopPlugin.getDefault(), "icons/undo_edit.gif"));
    undoAction.setAccelerator(SWT.CTRL | 'z');

    redoAction =
        new Action("&Redo") {
          public void run() {
            this.firePropertyChange("chosen", this, this);
          }
        };
    redoAction.setEnabled(false);
    redoAction.setImageDescriptor(
        ResourceManager.getPluginImageDescriptor(
            WorkshopPlugin.getDefault(), "icons/redo_edit(1).gif"));
    redoAction.setDisabledImageDescriptor(
        ResourceManager.getPluginImageDescriptor(
            WorkshopPlugin.getDefault(), "icons/redo_edit.gif"));
    redoAction.setAccelerator(SWT.CTRL | 'y');
    {
      newWizardDropDownAction = ActionFactory.NEW_WIZARD_DROP_DOWN.create(window);
      register(newWizardDropDownAction);
    }

    chooseImageEditorAction =
        new Action("工具设置...") {
          public void run() {
            onChooseImageEditor();
          }
        };

    viewDirectoryAction =
        new Action("Resource Explorer") {
          public void run() {
            try {
              window.getActivePage().showView(DirectoryView.ID);
            } catch (Exception e) {
            }
          }
        };
    viewDirectoryAction.setImageDescriptor(
        ResourceManager.getPluginImageDescriptor(WorkshopPlugin.getDefault(), "icons/items.gif"));

    viewTileLibraryAction =
        new Action("Tile Library") {
          public void run() {
            try {
              window.getActivePage().showView(TileLibView.ID);
            } catch (Exception e) {
              e.printStackTrace();
            }
          }
        };
    viewTileLibraryAction.setImageDescriptor(
        ResourceManager.getPluginImageDescriptor(WorkshopPlugin.getDefault(), "icons/tilelib.gif"));

    viewTileViewAction =
        new Action("Tile Viewer") {
          public void run() {
            try {
              window.getActivePage().showView(TileView.ID);
              //			window.getActivePage().showView("org.eclipse.swt.sleak.views.SleakView");
            } catch (Exception e) {
              e.printStackTrace();
            }
          }
        };
    viewTileViewAction.setImageDescriptor(
        ResourceManager.getPluginImageDescriptor(WorkshopPlugin.getDefault(), "icons/tiles.gif"));

    optimizeColorsAction =
        new Action("Optimize PNG Colors...") {
          public void run() {
            new PNGColorOptimizer().run(window.getShell());
          }
        };

    openLogDirAction =
        new Action("打开日志目录") {
          public void run() {
            String dir = Settings.logDir;
            String cmd = "explorer.exe \"" + dir + "\"";
            try {
              Runtime.getRuntime().exec(cmd);
            } catch (Exception e) {
            }
          }
        };

    projectViewAction =
        new Action("ProjectView") {
          public void run() {
            try {
              window.getActivePage().showView(ProjectView.ID);
            } catch (Exception e) {
              e.printStackTrace();
            }
          }
        };
    projectViewAction.setImageDescriptor(
        ResourceManager.getPluginImageDescriptor(WorkshopPlugin.getDefault(), "icons/project.gif"));

    frameDelayAction5 =
        new Action("20毫秒") {
          public void run() {
            Settings.animateFrameDelay = 20;
          }
        };

    frameDelayAction6 =
        new Action("10毫秒") {
          public void run() {
            Settings.animateFrameDelay = 10;
          }
        };

    frameDelayAction1 =
        new Action("40毫秒") {
          public void run() {
            Settings.animateFrameDelay = 40;
          }
        };

    frameDelayAction2 =
        new Action("60毫秒") {
          public void run() {
            Settings.animateFrameDelay = 60;
          }
        };

    frameDelayAction3 =
        new Action("80毫秒") {
          public void run() {
            Settings.animateFrameDelay = 80;
          }
        };

    frameDelayAction4 =
        new Action("100毫秒") {
          public void run() {
            Settings.animateFrameDelay = 100;
          }
        };

    limitPIPAction =
        new Action("限制PIP图片大小", IAction.AS_CHECK_BOX) {
          public void run() {
            PipImage.limitSize = !PipImage.limitSize;
          }
        };
    limitPIPAction.setChecked(PipImage.limitSize);

    allowMultiCompAction =
        new Action("允许一个PIP包含多个压缩纹理", IAction.AS_CHECK_BOX) {
          public void run() {
            PipImage.allowMultiCompressTexturesInOneFile =
                !PipImage.allowMultiCompressTexturesInOneFile;
          }
        };
    allowMultiCompAction.setChecked(PipImage.allowMultiCompressTexturesInOneFile);

    actionFontTool =
        new Action("字体工具...") {
          public void run() {
            FontViewDialog dlg = new FontViewDialog(window.getShell());
            dlg.open();
          }
        };

    openglAction =
        new Action("OpenGL模式", IAction.AS_CHECK_BOX) {
          public void run() {
            GLUtils.glEnabled = !GLUtils.glEnabled;
          }
        };
    openglAction.setImageDescriptor(
        ResourceManager.getPluginImageDescriptor(WorkshopPlugin.getDefault(), "icons/gl.gif"));
    openglAction.setToolTipText("开启/关闭OpenGL模式");
    openglAction.setChecked(GLUtils.glEnabled);

    optimizeImageAction =
        new Action("图片优化工具...") {
          public void run() {
            try {
              IFileStore fileStore = EFS.getLocalFileSystem().getStore(new Path("."));
              FileStoreEditorInput input = new FileStoreEditorInput(fileStore);
              window.getActivePage().openEditor(input, ImageOptimizeEditor.ID);
            } catch (Exception e) {
              e.printStackTrace();
            }
          }
        };

    comparePipAction =
        new Action("比较PIP图片...") {
          public void run() {
            try {
              IFileStore fileStore = EFS.getLocalFileSystem().getStore(new Path("."));
              FileStoreEditorInput input = new FileStoreEditorInput(fileStore);
              window.getActivePage().openEditor(input, ImageCompareEditor.ID);
            } catch (Exception e) {
              e.printStackTrace();
            }
          }
        };

    batchConvertAction =
        new Action("批量格式转换...") {
          public void run() {
            DirectoryDialog dlg = new DirectoryDialog(window.getShell());
            dlg.setMessage("请选择源目录:");
            String dir = dlg.open();
            if (dir == null) {
              return;
            }
            dlg.setMessage("请选择目标目录:");
            String targetDir = dlg.open();
            if (targetDir == null) {
              return;
            }

            BatchConvertDialog dlg2 = new BatchConvertDialog(window.getShell());
            try {
              dlg2.setDirectory(dir, targetDir);
              dlg2.open();
            } catch (Exception e1) {
              SWTUtils.showError(window.getShell(), "错误", e1);
            }
          }
        };

    testAction =
        new Action("test") {
          public void run() {
            // new TestPathDialog(null).open();
          }
        };
  }