adds perspective for Eclipse bundle

This commit is contained in:
2024-02-11 14:39:31 +01:00
parent 92428a3859
commit e4ba753f82
5 changed files with 124 additions and 18 deletions

View File

@@ -17,7 +17,9 @@ Require-Bundle: com.minres.scviewer.database;bundle-version="1.0.0",
org.eclipse.swt, org.eclipse.swt,
org.eclipse.osgi, org.eclipse.osgi,
org.eclipse.core.expressions;bundle-version="3.4.600", org.eclipse.core.expressions;bundle-version="3.4.600",
org.eclipse.jface org.eclipse.jface,
org.eclipse.ui.console,
org.eclipse.jdt.ui
Bundle-RequiredExecutionEnvironment: JavaSE-17 Bundle-RequiredExecutionEnvironment: JavaSE-17
Bundle-ActivationPolicy: lazy Bundle-ActivationPolicy: lazy
Import-Package: com.google.common.collect Import-Package: com.google.common.collect

View File

@@ -20,10 +20,11 @@
<editor <editor
class="com.minres.scviewer.ui.TxEditorPart" class="com.minres.scviewer.ui.TxEditorPart"
contributorClass="com.minres.scviewer.ui.TxEditorActionBarContributor" contributorClass="com.minres.scviewer.ui.TxEditorActionBarContributor"
extensions="txdb" default="true"
filenames="*.txdb,*.txlog,*.vcd,*.ftr" filenames="*.txlog,*.vcd,*.ftr,*.fst,*.txlog.gz,*.txdb"
icon="res/images/scviewer.png" icon="res/images/scviewer.png"
id="com.minres.scviewer.ui.TxEditorPart" id="com.minres.scviewer.ui.TxEditorPart"
matchingStrategy="SCViewerMatchingStrategy"
name="Wave Viewer"> name="Wave Viewer">
</editor> </editor>
</extension> </extension>
@@ -372,5 +373,14 @@
icon="res/images/cross.png"> icon="res/images/cross.png">
</image> </image>
</extension> </extension>
<extension
point="org.eclipse.ui.perspectives">
<perspective
class="com.minres.scviewer.ui.perspectives.WaveformPerspective"
icon="res/images/scviewer.png"
id="com.minres.scviewer.ui.perspectives.WaveformPerspective"
name="Waveform">
</perspective>
</extension>
</plugin> </plugin>

View File

@@ -0,0 +1,14 @@
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorMatchingStrategy;
import org.eclipse.ui.IEditorReference;
public class SCViewerMatchingStrategy implements IEditorMatchingStrategy {
@Override
public boolean matches(IEditorReference editorRef, IEditorInput input) {
return input.getName().endsWith(".ftr") || input.getName().endsWith(".fst")
|| input.getName().endsWith(".vcd") || input.getName().endsWith(".txlog")
|| input.getName().endsWith(".txlog.gz") || input.getName().endsWith(".txdb");
}
}

View File

@@ -0,0 +1,90 @@
package com.minres.scviewer.ui.perspectives;
import org.eclipse.ui.IFolderLayout;
import org.eclipse.ui.IPageLayout;
import org.eclipse.ui.IPerspectiveFactory;
import org.eclipse.ui.console.IConsoleConstants;
import org.eclipse.jdt.ui.JavaUI;
/**
* This class is meant to serve as an example for how various contributions
* are made to a perspective. Note that some of the extension point id's are
* referred to as API constants while others are hardcoded and may be subject
* to change.
*/
public class WaveformPerspective implements IPerspectiveFactory {
private IPageLayout factory;
public WaveformPerspective() {
super();
}
public void createInitialLayout(IPageLayout factory) {
this.factory = factory;
addViews();
addActionSets();
addNewWizardShortcuts();
addPerspectiveShortcuts();
addViewShortcuts();
}
private void addViews() {
// Creates the overall folder layout.
// Note that each new Folder uses a percentage of the remaining EditorArea.
IFolderLayout topLeft =
factory.createFolder(
"topLeft", //NON-NLS-1
IPageLayout.LEFT,
0.25f,
factory.getEditorArea());
topLeft.addView(IPageLayout.ID_PROJECT_EXPLORER);
IFolderLayout bottomLeft =
factory.createFolder(
"bottomLeft", //NON-NLS-1
IPageLayout.BOTTOM,
0.25f,
"topLeft");
bottomLeft.addView(IPageLayout.ID_OUTLINE);
IFolderLayout bottom =
factory.createFolder(
"bottomRight", //NON-NLS-1
IPageLayout.BOTTOM,
0.75f,
factory.getEditorArea());
bottom.addView(IPageLayout.ID_PROP_SHEET);
bottom.addPlaceholder(IConsoleConstants.ID_CONSOLE_VIEW);
}
private void addActionSets() {
factory.addActionSet(JavaUI.ID_ACTION_SET);
factory.addActionSet(JavaUI.ID_ELEMENT_CREATION_ACTION_SET);
factory.addActionSet(IPageLayout.ID_NAVIGATE_ACTION_SET); //NON-NLS-1
}
private void addPerspectiveShortcuts() {
factory.addPerspectiveShortcut("org.eclipse.team.ui.TeamSynchronizingPerspective"); //NON-NLS-1
factory.addPerspectiveShortcut("org.eclipse.ui.resourcePerspective"); //NON-NLS-1
}
private void addNewWizardShortcuts() {
factory.addNewWizardShortcut("org.eclipse.ui.wizards.new.folder");//NON-NLS-1
factory.addNewWizardShortcut("org.eclipse.ui.wizards.new.file");//NON-NLS-1
}
private void addViewShortcuts() {
factory.addShowViewShortcut("org.eclipse.ant.ui.views.AntView"); //NON-NLS-1
factory.addShowViewShortcut("org.eclipse.pde.ui.DependenciesView"); //NON-NLS-1
factory.addShowViewShortcut("org.eclipse.jdt.junit.ResultView"); //NON-NLS-1
factory.addShowViewShortcut("org.eclipse.team.ui.GenericHistoryView"); //NON-NLS-1
factory.addShowViewShortcut(IConsoleConstants.ID_CONSOLE_VIEW);
factory.addShowViewShortcut(JavaUI.ID_PACKAGES);
factory.addShowViewShortcut(IPageLayout.ID_PROJECT_EXPLORER);
factory.addShowViewShortcut(IPageLayout.ID_PROBLEM_VIEW);
factory.addShowViewShortcut(IPageLayout.ID_OUTLINE);
}
}

View File

@@ -26,23 +26,13 @@ public class TxDbTreeLabelProvider implements ILabelProvider {
private List<ILabelProviderListener> listeners = new ArrayList<ILabelProviderListener>(); private List<ILabelProviderListener> listeners = new ArrayList<ILabelProviderListener>();
private Image database; private static Image database=TxEditorPlugin.createImage("database");
private Image stream; private static Image stream=TxEditorPlugin.createImage("stream");
private Image signal; private static Image signal=TxEditorPlugin.createImage("signal");
private Image folder; private static Image folder=TxEditorPlugin.createImage("folder");
private Image wave; private static Image wave=TxEditorPlugin.createImage("wave");
public TxDbTreeLabelProvider() {
super();
database=TxEditorPlugin.createImage("database");
stream=TxEditorPlugin.createImage("stream");
folder=TxEditorPlugin.createImage("folder");
signal=TxEditorPlugin.createImage("signal");
wave=TxEditorPlugin.createImage("wave");
}
@Override @Override
public void addListener(ILabelProviderListener listener) { public void addListener(ILabelProviderListener listener) {
listeners.add(listener); listeners.add(listener);