Package org.eclipse.jface.action

Examples of org.eclipse.jface.action.Action


    /* Initially Hide */
    ((GridData) toolBar.getLayoutData()).exclude = true;
    toolBar.setVisible(false);

    IAction clearTextAction = new Action("", IAction.AS_PUSH_BUTTON) {//$NON-NLS-1$
      @Override
      public void run() {
        setFilterText(""); //$NON-NLS-1$
      }
    };

    clearTextAction.setToolTipText(Messages.BookMarkSearchbar_CLEAR);
    clearTextAction.setImageDescriptor(OwlUI.getImageDescriptor("icons/etool16/clear.gif")); //$NON-NLS-1$

    fFilterToolBar.add(clearTextAction);
  }
View Full Code Here


  /* ToolBar to control SearchTarget */
  private void createFilterTarget(Composite parent) {
    final ToolBarManager filterTargetManager = new ToolBarManager(SWT.FLAT);

    IAction filterTargetAction = new Action("", IAction.AS_DROP_DOWN_MENU) { //$NON-NLS-1$
      @Override
      public void run() {
        OwlUI.positionDropDownMenu(this, filterTargetManager);
      }

      @Override
      public String getId() {
        return BAR_ACTION_ID;
      }
    };

    filterTargetAction.setMenuCreator(new ContextMenuCreator() {

      @Override
      public Menu createMenu(Control parent) {
        Menu menu = new Menu(parent);

        /* Search on: Name */
        final MenuItem searchName = new MenuItem(menu, SWT.RADIO);
        searchName.setText(Messages.BookMarkSearchbar_NAME);
        searchName.setSelection(BookMarkFilter.SearchTarget.NAME == fPatternFilter.getSearchTarget());
        searchName.addSelectionListener(new SelectionAdapter() {
          @Override
          public void widgetSelected(SelectionEvent e) {
            if (searchName.getSelection() && fPatternFilter.getSearchTarget() != BookMarkFilter.SearchTarget.NAME)
              doSearch(BookMarkFilter.SearchTarget.NAME);
          }
        });

        /* Search on: Link */
        final MenuItem searchLink = new MenuItem(menu, SWT.RADIO);
        searchLink.setText(Messages.BookMarkSearchbar_LINK);
        searchLink.setSelection(BookMarkFilter.SearchTarget.LINK == fPatternFilter.getSearchTarget());
        searchLink.addSelectionListener(new SelectionAdapter() {
          @Override
          public void widgetSelected(SelectionEvent e) {
            if (searchLink.getSelection() && fPatternFilter.getSearchTarget() != BookMarkFilter.SearchTarget.LINK)
              doSearch(BookMarkFilter.SearchTarget.LINK);
          }
        });

        return menu;
      }
    });

    filterTargetAction.setImageDescriptor(OwlUI.getImageDescriptor("icons/etool16/find.gif")); //$NON-NLS-1$
    filterTargetManager.add(filterTargetAction);

    filterTargetManager.createControl(parent);
    filterTargetManager.getControl().setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, true));
  }
View Full Code Here

    MenuManager viewMenu = new MenuManager(Messages.ApplicationActionBarAdvisor_VIEW, M_VIEW);
    viewMenu.setRemoveAllWhenShown(true);
    menuBar.add(viewMenu);

    /* Add dummy action to show the top level menu */
    viewMenu.add(new Action("") { //$NON-NLS-1$
          @Override
          public void run() {}
        });

    /* Build Menu dynamically */
    viewMenu.addMenuListener(new IMenuListener() {
      public void menuAboutToShow(IMenuManager manager) {
        manager.add(new GroupMarker(M_VIEW_START));

        /* Layout */
        MenuManager layoutMenu = new MenuManager(Messages.ApplicationActionBarAdvisor_LAYOUT);
        layoutMenu.add(new Action(Messages.ApplicationActionBarAdvisor_CLASSIC_VIEW, IAction.AS_RADIO_BUTTON) {
          @Override
          public void run() {
            preferences.putBoolean(DefaultPreferences.FV_LAYOUT_CLASSIC, true);
            preferences.putBoolean(DefaultPreferences.FV_BROWSER_MAXIMIZED, false);
            List<FeedView> feedViews = OwlUI.getFeedViews();
            for (FeedView feedView : feedViews) {
              feedView.updateLayout();
            }
          }

          @Override
          public boolean isChecked() {
            return preferences.getBoolean(DefaultPreferences.FV_LAYOUT_CLASSIC) && !preferences.getBoolean(DefaultPreferences.FV_BROWSER_MAXIMIZED);
          }
        });

        layoutMenu.add(new Action(Messages.ApplicationActionBarAdvisor_VERTICAL_VIEW, IAction.AS_RADIO_BUTTON) {
          @Override
          public void run() {
            preferences.putBoolean(DefaultPreferences.FV_LAYOUT_CLASSIC, false);
            preferences.putBoolean(DefaultPreferences.FV_BROWSER_MAXIMIZED, false);
            List<FeedView> feedViews = OwlUI.getFeedViews();
            for (FeedView feedView : feedViews) {
              feedView.updateLayout();
            }
          }

          @Override
          public boolean isChecked() {
            return !preferences.getBoolean(DefaultPreferences.FV_LAYOUT_CLASSIC) && !preferences.getBoolean(DefaultPreferences.FV_BROWSER_MAXIMIZED);
          }
        });

        layoutMenu.add(new Action(Messages.ApplicationActionBarAdvisor_NEWSPAPER_VIEW, IAction.AS_RADIO_BUTTON) {
          @Override
          public void run() {
            preferences.putBoolean(DefaultPreferences.FV_BROWSER_MAXIMIZED, true);
            List<FeedView> feedViews = OwlUI.getFeedViews();
            for (FeedView feedView : feedViews) {
              feedView.updateLayout();
            }
          }

          @Override
          public boolean isChecked() {
            return preferences.getBoolean(DefaultPreferences.FV_BROWSER_MAXIMIZED);
          }
        });

        layoutMenu.add(new Separator());
        layoutMenu.add(new Action(Messages.ApplicationActionBarAdvisor_TABBED_BROWSING, IAction.AS_CHECK_BOX) {
          @Override
          public void run() {
            boolean tabbedBrowsingEnabled = isChecked();

            /* Disable Tabbed Browsing */
            if (tabbedBrowsingEnabled) {

              /* Close other Tabs if necessary */
              boolean doit = true;
              IWorkbenchPage page = OwlUI.getPage();
              if (page != null) {
                IEditorReference[] editorReferences = page.getEditorReferences();
                if (editorReferences.length > 1) {
                  MessageBox confirmDialog = new MessageBox(page.getWorkbenchWindow().getShell(), SWT.ICON_QUESTION | SWT.YES | SWT.NO);
                  confirmDialog.setText(Messages.ApplicationActionBarAdvisor_DISABLE_TABBED_BROWSING);
                  confirmDialog.setMessage(NLS.bind(Messages.ApplicationActionBarAdvisor_TABS_MESSAGE, editorReferences.length));
                  if (confirmDialog.open() == SWT.YES)
                    OwlUI.closeOtherEditors();
                  else
                    doit = false;
                }
              }

              /* Update Preferences */
              if (doit) {
                eclipsePrefs.putBoolean(DefaultPreferences.ECLIPSE_MULTIPLE_TABS, false);
                eclipsePrefs.putBoolean(DefaultPreferences.ECLIPSE_AUTOCLOSE_TABS, true);
                eclipsePrefs.putInteger(DefaultPreferences.ECLIPSE_AUTOCLOSE_TABS_THRESHOLD, 1);
              }
            }

            /* Enable Tabbed Browsing */
            else {
              eclipsePrefs.putBoolean(DefaultPreferences.ECLIPSE_MULTIPLE_TABS, true);
              eclipsePrefs.putBoolean(DefaultPreferences.ECLIPSE_AUTOCLOSE_TABS, false);
              eclipsePrefs.putInteger(DefaultPreferences.ECLIPSE_AUTOCLOSE_TABS_THRESHOLD, 5);
            }
          }

          @Override
          public boolean isChecked() {
            boolean autoCloseTabs = eclipsePrefs.getBoolean(DefaultPreferences.ECLIPSE_AUTOCLOSE_TABS);
            int autoCloseTabsThreshold = eclipsePrefs.getInteger(DefaultPreferences.ECLIPSE_AUTOCLOSE_TABS_THRESHOLD);
            return !autoCloseTabs || autoCloseTabsThreshold > 1;
          }
        });

        manager.add(layoutMenu);

        /* Zoom (In, Out, Reset) */
        final MenuManager zoomMenu = new MenuManager(Messages.ApplicationActionBarAdvisor_ZOOM);
        zoomMenu.setRemoveAllWhenShown(true);
        zoomMenu.addMenuListener(new IMenuListener() {
          public void menuAboutToShow(IMenuManager manager) {
            FeedView activeFeedView = OwlUI.getActiveFeedView();
            final boolean isZoomingEnabled = (activeFeedView != null && activeFeedView.isBrowserShowingNews());

            /* Zoom In */
            zoomMenu.add(new Action(Messages.ApplicationActionBarAdvisor_ZOOM_IN) {
              @Override
              public void run() {
                OwlUI.zoomNewsText(true, false);
              }

              @Override
              public String getId() {
                return "org.rssowl.ui.ZoomInCommand"; //$NON-NLS-1$
              }

              @Override
              public String getActionDefinitionId() {
                return "org.rssowl.ui.ZoomInCommand"; //$NON-NLS-1$
              }

              @Override
              public boolean isEnabled() {
                return isZoomingEnabled;
              }
            });

            /* Zoom Out */
            zoomMenu.add(new Action(Messages.ApplicationActionBarAdvisor_ZOOM_OUT) {
              @Override
              public void run() {
                OwlUI.zoomNewsText(false, false);
              }

              @Override
              public String getId() {
                return "org.rssowl.ui.ZoomOutCommand"; //$NON-NLS-1$
              }

              @Override
              public String getActionDefinitionId() {
                return "org.rssowl.ui.ZoomOutCommand"; //$NON-NLS-1$
              }

              @Override
              public boolean isEnabled() {
                return isZoomingEnabled;
              }
            });

            /* Reset */
            zoomMenu.add(new Separator());
            zoomMenu.add(new Action(Messages.ApplicationActionBarAdvisor_RESET) {
              @Override
              public void run() {
                OwlUI.zoomNewsText(false, true);
              }

              @Override
              public String getId() {
                return "org.rssowl.ui.ZoomResetCommand"; //$NON-NLS-1$
              }

              @Override
              public String getActionDefinitionId() {
                return "org.rssowl.ui.ZoomResetCommand"; //$NON-NLS-1$
              }

              @Override
              public boolean isEnabled() {
                return isZoomingEnabled;
              }
            });
          }
        });

        manager.add(zoomMenu);

        /* Toggle State of Toolbar Visibility */
        manager.add(new Separator());
        manager.add(new Action(Messages.ApplicationActionBarAdvisor_TOOLBAR, IAction.AS_CHECK_BOX) {
          @Override
          public void run() {
            ApplicationWorkbenchWindowAdvisor configurer = ApplicationWorkbenchAdvisor.fgPrimaryApplicationWorkbenchWindowAdvisor;

            boolean isToolBarVisible = preferences.getBoolean(DefaultPreferences.SHOW_TOOLBAR);
            configurer.setToolBarVisible(!isToolBarVisible, true);
            preferences.putBoolean(DefaultPreferences.SHOW_TOOLBAR, !isToolBarVisible);
          }

          @Override
          public boolean isChecked() {
            return preferences.getBoolean(DefaultPreferences.SHOW_TOOLBAR);
          }
        });

        /* Toggle State of Status Bar Visibility */
        manager.add(new Action(Messages.ApplicationActionBarAdvisor_STATUS, IAction.AS_CHECK_BOX) {
          @Override
          public void run() {
            ApplicationWorkbenchWindowAdvisor configurer = ApplicationWorkbenchAdvisor.fgPrimaryApplicationWorkbenchWindowAdvisor;

            boolean isStatusVisible = preferences.getBoolean(DefaultPreferences.SHOW_STATUS);
            configurer.setStatusVisible(!isStatusVisible, true);
            preferences.putBoolean(DefaultPreferences.SHOW_STATUS, !isStatusVisible);
          }

          @Override
          public boolean isChecked() {
            return preferences.getBoolean(DefaultPreferences.SHOW_STATUS);
          }
        });

        /* Toggle State of Bookmarks Visibility */
        manager.add(new Action(Messages.ApplicationActionBarAdvisor_BOOKMARKS, IAction.AS_CHECK_BOX) {
          @Override
          public void run() {
            OwlUI.toggleBookmarks();
          }

          @Override
          public String getActionDefinitionId() {
            return "org.rssowl.ui.ToggleBookmarksCommand"; //$NON-NLS-1$
          }

          @Override
          public String getId() {
            return "org.rssowl.ui.ToggleBookmarksCommand"; //$NON-NLS-1$
          }

          @Override
          public boolean isChecked() {
            IWorkbenchPage page = OwlUI.getPage();
            if (page != null)
              return page.findView(BookMarkExplorer.VIEW_ID) != null;

            return false;
          }
        });

        /* Customize Toolbar */
        manager.add(new Separator());
        manager.add(new Action(Messages.ApplicationActionBarAdvisor_CUSTOMIZE_TOOLBAR) {
          @Override
          public void run() {

            /* Unhide Toolbar if hidden */
            ApplicationWorkbenchWindowAdvisor configurer = ApplicationWorkbenchAdvisor.fgPrimaryApplicationWorkbenchWindowAdvisor;

            boolean isToolBarVisible = preferences.getBoolean(DefaultPreferences.SHOW_TOOLBAR);
            if (!isToolBarVisible) {
              configurer.setToolBarVisible(true, true);
              preferences.putBoolean(DefaultPreferences.SHOW_TOOLBAR, true);
            }

            /* Open Dialog to Customize Toolbar */
            CustomizeToolbarDialog dialog = new CustomizeToolbarDialog(getActionBarConfigurer().getWindowConfigurer().getWindow().getShell());
            if (dialog.open() == IDialogConstants.OK_ID)
              fCoolBarAdvisor.advise(true);
          }
        });

        /* Fullscreen Mode */
        manager.add(new Separator());
        manager.add(new Action(Messages.ApplicationActionBarAdvisor_FULL_SCREEN, IAction.AS_CHECK_BOX) {
          @Override
          public void run() {
            OwlUI.toggleFullScreen();
          }

          @Override
          public String getActionDefinitionId() {
            return "org.rssowl.ui.FullScreenCommand"; //$NON-NLS-1$
          }

          @Override
          public String getId() {
            return "org.rssowl.ui.FullScreenCommand"; //$NON-NLS-1$
          }

          @Override
          public boolean isChecked() {
            Shell shell = OwlUI.getActiveShell();
            if (shell != null)
              return shell.getFullScreen();

            return super.isChecked();
          }
        });

        /* Minimize */
        manager.add(new Action(Messages.ApplicationActionBarAdvisor_MINIMIZE) {
          @Override
          public void run() {
            Shell shell = OwlUI.getActiveShell();
            if (shell != null)
              shell.setMinimized(true);
View Full Code Here

  /* Menu: Bookmarks */
  private void createBookMarksMenu(IMenuManager menuBar) {
    MenuManager bmMenu = new MenuManager(Messages.ApplicationActionBarAdvisor_BOOKMARKS, "bookmarks"); //$NON-NLS-1$
    bmMenu.setRemoveAllWhenShown(true);
    bmMenu.add(new Action("") {}); //Dummy Action //$NON-NLS-1$
    bmMenu.addMenuListener(new IMenuListener() {
      public void menuAboutToShow(IMenuManager manager) {
        fillBookMarksMenu(manager, getActionBarConfigurer().getWindowConfigurer().getWindow());
        manager.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
      }
View Full Code Here

        /* Filter */
        if (!selection.isEmpty()) {
          manager.add(new Separator("filter")); //$NON-NLS-1$

          /* Create Filter */
          manager.add(new Action(Messages.ApplicationActionBarAdvisor_CREATE_FILTER) {
            @Override
            public void run() {
              CreateFilterAction action = new CreateFilterAction();
              action.selectionChanged(null, selection);
              action.run(null);
            }

            @Override
            public ImageDescriptor getImageDescriptor() {
              return OwlUI.FILTER;
            }

            @Override
            public String getActionDefinitionId() {
              return CreateFilterAction.ID;
            };

            @Override
            public String getId() {
              return CreateFilterAction.ID;
            };
          });
        }

        /* Update */
        {
          manager.add(new Separator("reload")); //$NON-NLS-1$

          /* Update */
          manager.add(new Action(Messages.ApplicationActionBarAdvisor_UPDATE) {
            @Override
            public void run() {
              IActionDelegate action = new ReloadTypesAction();
              action.selectionChanged(null, selection);
              action.run(null);
View Full Code Here

    menuBar.add(helpMenu);

    helpMenu.add(new GroupMarker(IWorkbenchActionConstants.HELP_START));

    /* Tutorial Wizard */
    helpMenu.add(new Action(Messages.ApplicationActionBarAdvisor_TUTORIAL) {
      @Override
      public void run() {
        TutorialWizard wizard = new TutorialWizard();
        OwlUI.openWizard(getActionBarConfigurer().getWindowConfigurer().getWindow().getShell(), wizard, false, false, null);
      }

      @Override
      public ImageDescriptor getImageDescriptor() {
        return OwlUI.getImageDescriptor("icons/elcl16/help.gif"); //$NON-NLS-1$
      }

      @Override
      public String getId() {
        return TutorialHandler.ID;
      }

      @Override
      public String getActionDefinitionId() {
        return TutorialHandler.ID;
      }
    });

    /* Link to Help */
    helpMenu.add(new Action(Messages.ApplicationActionBarAdvisor_FAQ) {
      @Override
      public void run() {
        BrowserUtils.openLinkExternal("http://www.rssowl.org/help"); //$NON-NLS-1$
      }
    });

    /* Link to Forum */
    helpMenu.add(new Action(Messages.ApplicationActionBarAdvisor_VISIT_FORUM) {
      @Override
      public void run() {
        BrowserUtils.openLinkExternal("http://sourceforge.net/projects/rssowl/forums/forum/296910"); //$NON-NLS-1$
      }

      @Override
      public ImageDescriptor getImageDescriptor() {
        return OwlUI.getImageDescriptor("icons/obj16/forum.gif"); //$NON-NLS-1$
      }
    });

    /* Show Key Bindings */
    helpMenu.add(new Separator());
    helpMenu.add(new Action(Messages.ApplicationActionBarAdvisor_SHOW_KEY_BINDINGS) {
      @Override
      public void run() {
        IWorkbench workbench = PlatformUI.getWorkbench();
        IBindingService bindingService = (IBindingService) workbench.getService(IBindingService.class);
        bindingService.openKeyAssistDialog();
      }
    });

    helpMenu.add(new Separator());

    /* Report Bugs */
    helpMenu.add(new Action(Messages.ApplicationActionBarAdvisor_REPORT_PROBLEMS) {
      @Override
      public void run() {
        BrowserUtils.openLinkExternal("http://dev.rssowl.org"); //$NON-NLS-1$
      }

      @Override
      public ImageDescriptor getImageDescriptor() {
        return OwlUI.getImageDescriptor("icons/elcl16/bug.gif"); //$NON-NLS-1$
      }
    });

    /* Export Log to File */
    helpMenu.add(new Action(Messages.ApplicationActionBarAdvisor_EXPORT_LOGFILE) {
      @Override
      public void run() {
        FileDialog dialog = new FileDialog(getActionBarConfigurer().getWindowConfigurer().getWindow().getShell(), SWT.SAVE);
        dialog.setText(Messages.ApplicationActionBarAdvisor_EXPORT_LOGFILE_DIALOG);
        dialog.setFilterExtensions(new String[] { "*.log" }); //$NON-NLS-1$
        dialog.setFileName("rssowl.log"); //$NON-NLS-1$
        dialog.setOverwrite(true);

        String file = dialog.open();
        if (StringUtils.isSet(file)) {
          try {

            /* Check for Log Message from Core to have a complete log */
            String logMessages = CoreUtils.getAndFlushLogMessages();
            if (logMessages != null && logMessages.length() > 0)
              Activator.safeLogError(logMessages, null);

            /* Help to find out where the log is coming from */
            Activator.safeLogInfo("Error Log Exported"); //$NON-NLS-1$

            /* Export Log File */
            File logFile = Platform.getLogFileLocation().toFile();
            InputStream inS;
            if (logFile.exists())
              inS = new FileInputStream(logFile);
            else
              inS = new ByteArrayInputStream(new byte[0]);
            FileOutputStream outS = new FileOutputStream(new File(file));
            CoreUtils.copy(inS, outS);

            /* Append a Report of Feeds that are not loading if any */
            String nl = System.getProperty("line.separator"); //$NON-NLS-1$
            if (!StringUtils.isSet(nl))
              nl= "\n"; //$NON-NLS-1$

            StringBuilder errorReport = new StringBuilder();
            Collection<IBookMark> bookmarks = DynamicDAO.getDAO(IBookMarkDAO.class).loadAll();
            for (IBookMark bookmark : bookmarks) {
              if (bookmark.isErrorLoading()) {
                Object errorObj = bookmark.getProperty(Controller.LOAD_ERROR_KEY);
                if (errorObj != null && errorObj instanceof String) {
                  errorReport.append(Controller.getDefault().createLogEntry(bookmark, null, (String) errorObj));
                  errorReport.append(nl).append(nl);
                }
              }
            }

            if (errorReport.length() > 0) {
              FileWriter writer = new FileWriter(new File(file), true);
              try {
                writer.append(nl).append(nl).append(nl);
                writer.write("--- Summary of Feeds that are not Loading -----------------------------------------------"); //$NON-NLS-1$
                writer.append(nl).append(nl);
                writer.write(errorReport.toString());
                writer.close();
              } finally {
                writer.close();
              }
            }
          } catch (FileNotFoundException e) {
            Activator.getDefault().logError(e.getMessage(), e);
          } catch (IOException e) {
            Activator.getDefault().logError(e.getMessage(), e);
          }
        }
      }
    });

    helpMenu.add(new Separator());

    /* Homepage */
    helpMenu.add(new Action(Messages.ApplicationActionBarAdvisor_HOMEPAGE) {
      @Override
      public void run() {
        BrowserUtils.openLinkExternal("http://www.rssowl.org"); //$NON-NLS-1$
      }
    });

    /* License */
    helpMenu.add(new Action(Messages.ApplicationActionBarAdvisor_LICENSE) {
      @Override
      public void run() {
        BrowserUtils.openLinkExternal("http://www.rssowl.org/legal/epl-v10.html"); //$NON-NLS-1$
      }
    });
View Full Code Here

   */
  protected void fillTrayItem(IMenuManager trayItem, final Shell shell, final ApplicationWorkbenchWindowAdvisor advisor) {
    trayItem.add(new ReloadAllAction(false));
    trayItem.add(new Separator());

    trayItem.add(new Action(Messages.ApplicationActionBarAdvisor_CONFIGURE_NOTIFICATIONS) {
      @Override
      public void run() {
        advisor.restoreFromTray(shell);
        PreferencesUtil.createPreferenceDialogOn(shell, NotifierPreferencesPage.ID, null, null).open();
      }

      @Override
      public ImageDescriptor getImageDescriptor() {
        return OwlUI.getImageDescriptor("icons/elcl16/notification.gif"); //$NON-NLS-1$
      }
    });

    trayItem.add(new Action(Messages.ApplicationActionBarAdvisor_PREFERENCES) {
      @Override
      public void run() {
        advisor.restoreFromTray(shell);
        PreferencesUtil.createPreferenceDialogOn(shell, OverviewPreferencesPage.ID, null, null).open();
      }

      @Override
      public ImageDescriptor getImageDescriptor() {
        return OwlUI.getImageDescriptor("icons/elcl16/preferences.gif"); //$NON-NLS-1$
      }
    });

    trayItem.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));

    trayItem.add(new Action(Messages.ApplicationActionBarAdvisor_EXIT) {
      @Override
      public void run() {
        PlatformUI.getWorkbench().close();
      }
    });
View Full Code Here

    /* CoolBar Context Menu */
    MenuManager coolBarContextMenuManager = new MenuManager(null, "org.rssowl.ui.CoolBarContextMenu"); //$NON-NLS-1$
    coolBar.setContextMenuManager(coolBarContextMenuManager);

    /* Customize Coolbar */
    coolBarContextMenuManager.add(new Action(Messages.ApplicationActionBarAdvisor_CUSTOMIZE_TOOLBAR) {
      @Override
      public void run() {
        CustomizeToolbarDialog dialog = new CustomizeToolbarDialog(getActionBarConfigurer().getWindowConfigurer().getWindow().getShell());
        if (dialog.open() == IDialogConstants.OK_ID)
          fCoolBarAdvisor.advise(true);
      }
    });

    /* Lock Coolbar  */
    coolBarContextMenuManager.add(new Separator());
    IAction lockToolbarAction = getAction(ActionFactory.LOCK_TOOL_BAR.getId());
    lockToolbarAction.setText(Messages.ApplicationActionBarAdvisor_LOCK_TOOLBAR);
    coolBarContextMenuManager.add(lockToolbarAction);

    /* Toggle State of Toolbar Visibility */
    coolBarContextMenuManager.add(new Action(Messages.ApplicationActionBarAdvisor_HIDE_TOOLBAR) {
      @Override
      public void run() {
        ApplicationWorkbenchWindowAdvisor configurer = ApplicationWorkbenchAdvisor.fgPrimaryApplicationWorkbenchWindowAdvisor;
        configurer.setToolBarVisible(false, true);
        Owl.getPreferenceService().getGlobalScope().putBoolean(DefaultPreferences.SHOW_TOOLBAR, false);
View Full Code Here

            break;
          }
        }
        String sumSize = OwlUI.getSize(sumBytes);

        Action downloadAllAction = new Action(sumSize != null ? (NLS.bind(Messages.ApplicationActionBarAdvisor_DOWNLOAD_ALL_WITH_SIZE, sumSize)) : (Messages.ApplicationActionBarAdvisor_DOWNLOAD_ALL)) {
          @Override
          public void run() {
            DirectoryDialog dialog = new DirectoryDialog(shellProvider.getShell(), SWT.None);
            dialog.setText(Messages.ApplicationActionBarAdvisor_SELECT_FOLDER_FOR_DOWNLOADS);

            String downloadFolder = preferences.getString(DefaultPreferences.DOWNLOAD_FOLDER);
            if (StringUtils.isSet(downloadFolder) && new File(downloadFolder).exists())
              dialog.setFilterPath(downloadFolder);

            String folder = dialog.open();
            if (StringUtils.isSet(folder)) {
              for (Pair<IAttachment, URI> attachment : attachments) {
                Controller.getDefault().getDownloadService().download(attachment.getFirst(), attachment.getSecond(), new File(folder), true);
              }

              /* Remember Download Folder in Settings */
              preferences.putString(DefaultPreferences.DOWNLOAD_FOLDER, folder);
            }
          }
        };
        downloadAllAction.setImageDescriptor(OwlUI.getImageDescriptor("icons/elcl16/save_all.gif")); //$NON-NLS-1$
        attachmentMenu.add(downloadAllAction);
        attachmentMenu.add(new Separator());
      }

      /* Collect openable Attachments that have already been downloaded */
      List<Action> openActions = new ArrayList<Action>(1);
      Set<String> downloadLocations = getDownloadLocations();

      /* Offer Download Action for each */
      for (final Pair<IAttachment, URI> attachmentPair : attachments) {
        IAttachment attachment = attachmentPair.getFirst();
        final String fileName = URIUtils.getFile(attachmentPair.getSecond(), OwlUI.getExtensionForMime(attachment.getType()));
        String size = OwlUI.getSize(attachment.getLength());

        Action action = new Action(size != null ? (NLS.bind(Messages.ApplicationActionBarAdvisor_FILE_SIZE, fileName, size)) : (fileName)) {
          @Override
          public void run() {
            FileDialog dialog = new FileDialog(shellProvider.getShell(), SWT.SAVE);
            dialog.setText(Messages.ApplicationActionBarAdvisor_SELECT_FILE_FOR_DOWNLOAD);
            dialog.setFileName(Application.IS_WINDOWS ? CoreUtils.getSafeFileNameForWindows(fileName) : fileName);
            dialog.setOverwrite(true);

            String downloadFolder = preferences.getString(DefaultPreferences.DOWNLOAD_FOLDER);
            if (StringUtils.isSet(downloadFolder) && new File(downloadFolder).exists())
              dialog.setFilterPath(downloadFolder);

            String selectedFileName = dialog.open();
            if (StringUtils.isSet(selectedFileName)) {
              File file = new File(selectedFileName);
              Controller.getDefault().getDownloadService().download(attachmentPair.getFirst(), attachmentPair.getSecond(), file.getName(), file.getParentFile(), true);

              /* Remember Download Folder in Settings */
              preferences.putString(DefaultPreferences.DOWNLOAD_FOLDER, file.getParentFile().toString());
            }
          }
        };

        action.setImageDescriptor(OwlUI.getImageDescriptor("icons/etool16/save_as.gif")); //$NON-NLS-1$
        attachmentMenu.add(action);

        /* Check if Attachment already exists and offer Open Action then */
        String usedFileName = Application.IS_WINDOWS ? CoreUtils.getSafeFileNameForWindows(fileName) : fileName;
        if (shouldOfferOpenAction(usedFileName)) {
          for (String downloadLocation : downloadLocations) {
            final File downloadedFile = new File(downloadLocation, usedFileName);
            if (downloadedFile.exists()) {
              Action openAction = new Action(NLS.bind(Messages.ApplicationActionBarAdvisor_OPEN_FILE, fileName)) {
                @Override
                public void run() {
                  Program.launch(downloadedFile.toString());
                }
              };

              openAction.setImageDescriptor(OwlUI.getAttachmentImage(fileName, attachmentPair.getFirst().getType()));
              openActions.add(openAction);

              break;
            }
          }
View Full Code Here

    /* List all selected Share Providers  */
    final boolean isEnabled = !selection.isEmpty() && !OwlUI.isEntityGroupSelected(selection);
    List<ShareProvider> providers = Controller.getDefault().getShareProviders();
    for (final ShareProvider provider : providers) {
      if (provider.isEnabled()) {
        shareMenu.add(new Action(provider.getName()) {
          @Override
          public void run() {

            /* Special Case "Send E-Mail" action */
            if (SendLinkAction.ID.equals(provider.getId())) {
              IActionDelegate action = new SendLinkAction();
              action.selectionChanged(null, selection);
              action.run(null);
            }

            /* Other Action */
            else {
              Object obj = selection.getFirstElement();
              if (obj != null && obj instanceof INews) {
                String shareLink = provider.toShareUrl((INews) obj);
                new OpenInBrowserAction(new StructuredSelection(shareLink)).run();
              }
            }
          };

          @Override
          public ImageDescriptor getImageDescriptor() {
            if (StringUtils.isSet(provider.getIconPath()))
              return OwlUI.getImageDescriptor(provider.getPluginId(), provider.getIconPath());

            return super.getImageDescriptor();
          };

          @Override
          public boolean isEnabled() {
            return isEnabled;
          }

          @Override
          public String getActionDefinitionId() {
            return SendLinkAction.ID.equals(provider.getId()) ? SendLinkAction.ID : super.getActionDefinitionId();
          }

          @Override
          public String getId() {
            return SendLinkAction.ID.equals(provider.getId()) ? SendLinkAction.ID : super.getId();
          }
        });
      }
    }

    /* Allow to Configure Providers */
    shareMenu.add(new Separator());
    shareMenu.add(new Action(Messages.ApplicationActionBarAdvisor_CONFIGURE) {
      @Override
      public void run() {
        PreferencesUtil.createPreferenceDialogOn(shellProvider.getShell(), SharingPreferencesPage.ID, null, null).open();
      };
    });
View Full Code Here

TOP

Related Classes of org.eclipse.jface.action.Action

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.