Eclipse RCP Miscs Series 1


Eclipse RCP Miscs Series 1

API
Display.getCurrent().getActiveShell()
Display.getDefault().getActiveShell()
IWorkbenchWindow window
= HandlerUtil.getActiveWorkbenchWindow(event);
URL url
= Activator.getDefault().getBundle().getResource("log4j.properties"); PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView/findView(viewName);

Get current perspective
IPerspectiveDescriptor perspective=PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getPerspective();

Expand/Collapse a tree viewer
if (treeViewer.getExpandedState(firstElement))
{
    treeViewer.collapseToLevel(firstElement, AbstractTreeViewer.ALL_LEVELS);
}
else
{
    treeViewer.expandToLevel(firstElement, 1);
}
Enable Find/Replace Action
1. Register it in ApplicationActionBarAdvisor
    protected void makeActions(IWorkbenchWindow window) {
       register(ActionFactory.FIND.create(window));
    }
2. Add the command to the menu.
3. in the view:
public void createControl(Composite parent)
{
    FindReplaceAction action = new FindReplaceAction(Activator.getDefault().getResourceBundle(), "find", getSite()
        .getShell(), textViewer.getFindReplaceTarget());
    getSite().getActionBars().setGlobalActionHandler(ActionFactory.FIND.getId(), action);
}

PlatformUI.getWorkbench().showPerspective("com.frankdu.workbench.perspective_id", window);

PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView("com.frankdu.workbench.view_id");
Hide editor in perspective
In perspective class:
public void createInitialLayout(IPageLayout layout)
{
    layout.setEditorAreaVisible(false);
}
In 3.5
org.eclipse.ui.IWorkbenchPage.hideEditor(IEditorReference) org.eclipse.ui.IWorkbenchPage.showEditor(IEditorReference) were introduced ... they can be used to hide editors when you switch perspectives (for example, in a perspective change listener)

Override initialize method in ApplicationWorkbenchAdvisor and add configurer.setSaveAndRestore(true);
public void initialize(final IWorkbenchConfigurer configurer)
{
    super.initialize(configurer);
    configurer.setSaveAndRestore(true);
}

menuContribution
The contributions are menu ID based, not menu path based.
menuContribution locationURI="menu:file?after=additions
 
menuContribution locationURI="menu:new?after=myGroup1"

Perspective Bar
It has to be enabled from the WorkbenchWindowAdvisor to appear.
configurer.setShowPerspectiveBar(true);
The perspective bar’s default location is just below the toolbar, but it can be placed in the top right or on the left using the
IWorkbenchPreferenceConstants.DOCK_PERSPECTIVE_BAR preference.
You can set this in the Hyperbola preferences.ini file as follows:
org.eclipse.ui/DOCK_PERSPECTIVE_BAR=TOP_RIGHT
Define what perspective would be shown in perspective bar.
org.eclipse.ui/PERSPECTIVE_BAR_EXTRAS=perspective_id

extension point="org.eclipse.ui.preferences"
  view
class="org.eclipse.ui.ExtensionFactory:newKeysPreferencePage"
      id="org.eclipsercp.hyperbola.preferences.keys"
      name="Keys"
extension
Try using the extension point "org.eclipse.ui.startup" and define a startup class for it. This class must implement IStartup, which defines earlyStartup(), as you probably know since you mentioned the method.

-consoleLog
-noExit
These can be added to launcher ini file, in Arguments tab if you start/debug rcp project in eclipse, or as program arugments in Launching tab of rcp product file.
The Eclipse runtime options

Press Alt+Shift+F1 to get information about the current running Eclipse plugin / data types / screen.
Press "Alt + Shift + F2" and select a menu to see who is contributing this menu.

In the file plugin.xml (tab dependencies), you can check if you have any dependency maintained which is actually not used, by selecting Dependency Analysis -> Find unused dependencies.

Labels

adsense (5) Algorithm (69) Algorithm Series (35) Android (7) ANT (6) bat (8) Big Data (7) Blogger (14) Bugs (6) Cache (5) Chrome (19) Code Example (29) Code Quality (7) Coding Skills (5) Database (7) Debug (16) Design (5) Dev Tips (63) Eclipse (32) Git (5) Google (33) Guava (7) How to (9) Http Client (8) IDE (7) Interview (88) J2EE (13) J2SE (49) Java (186) JavaScript (27) JSON (7) Learning code (9) Lesson Learned (6) Linux (26) Lucene-Solr (112) Mac (10) Maven (8) Network (9) Nutch2 (18) Performance (9) PowerShell (11) Problem Solving (11) Programmer Skills (6) regex (5) Scala (6) Security (9) Soft Skills (38) Spring (22) System Design (11) Testing (7) Text Mining (14) Tips (17) Tools (24) Troubleshooting (29) UIMA (9) Web Development (19) Windows (21) xml (5)