Finished version 1.0
- added relation navigation - improved about dialog
This commit is contained in:
@ -0,0 +1,76 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2015 MINRES Technologies GmbH and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* MINRES Technologies GmbH - initial API and implementation
|
||||
*******************************************************************************/
|
||||
|
||||
package com.minres.scviewer.e4.application.elements;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import org.eclipse.e4.ui.di.AboutToShow;
|
||||
import org.eclipse.e4.ui.model.application.MApplication;
|
||||
import org.eclipse.e4.ui.model.application.commands.MCommand;
|
||||
import org.eclipse.e4.ui.model.application.commands.MCommandParameter;
|
||||
import org.eclipse.e4.ui.model.application.commands.MParameter;
|
||||
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
|
||||
import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
|
||||
import org.eclipse.e4.ui.model.application.ui.menu.MMenuElement;
|
||||
import org.eclipse.e4.ui.workbench.modeling.EModelService;
|
||||
import org.eclipse.e4.ui.workbench.modeling.EPartService;
|
||||
|
||||
import com.minres.scviewer.database.RelationType;
|
||||
import com.minres.scviewer.e4.application.parts.WaveformViewerPart;
|
||||
|
||||
public class NavigateContribution {
|
||||
@Inject EPartService partService;
|
||||
|
||||
@AboutToShow
|
||||
public void aboutToShow(List<MMenuElement> items, MApplication application, EModelService modelService) {
|
||||
// modelService.getActivePerspective(window)
|
||||
// modelService.findElements(application,"myID",MPart.class, EModelService.IN_ACTIVE_PERSPECTIVE);
|
||||
// MDirectMenuItem dynamicItem = MMenuFactory.INSTANCE.createDirectMenuItem();
|
||||
MPart part = partService.getActivePart();
|
||||
if(part.getObject()instanceof WaveformViewerPart){
|
||||
WaveformViewerPart waveformViewerPart = (WaveformViewerPart) part.getObject();
|
||||
RelationType relationTypeFilter = waveformViewerPart.getRelationTypeFilter();
|
||||
MCommand command = modelService.findElements(application,
|
||||
"com.minres.scviewer.e4.application.command.setrelationtype", MCommand.class, null).get(0);
|
||||
MCommandParameter commandParameter = command.getParameters().get(0);
|
||||
for(RelationType relationType:waveformViewerPart.getAllRelationTypes()){
|
||||
// MDirectMenuItem dynamicItem = modelService.createModelElement(MDirectMenuItem.class);
|
||||
//
|
||||
// dynamicItem.setLabel(relationType.getName());
|
||||
// dynamicItem.setIconURI(relationTypeFilter.equals(relationType)?
|
||||
// "platform:/plugin/com.minres.scviewer.e4.application/icons/tick.png":
|
||||
// "platform:/plugin/com.minres.scviewer.e4.application/icons/empty.png");
|
||||
// dynamicItem.setContributorURI("platform:/plugin/com.minres.scviewer.e4.application");
|
||||
// dynamicItem.setContributionURI("bundleclass://com.minres.scviewer.e4.application/com.minres.scviewer.e4.application.parts.DirectMenuItem?blah=1");
|
||||
// items.add(dynamicItem);
|
||||
MParameter parameter=modelService.createModelElement(MParameter.class);
|
||||
parameter.setName(commandParameter.getElementId());
|
||||
parameter.setValue(relationType.getName());
|
||||
parameter.setContributorURI("platform:/plugin/com.minres.scviewer.e4.application");
|
||||
MHandledMenuItem handledMenuItem= modelService.createModelElement(MHandledMenuItem.class);
|
||||
handledMenuItem.setLabel(relationType.getName());
|
||||
if(relationTypeFilter.equals(relationType)){
|
||||
handledMenuItem.setEnabled(false);
|
||||
handledMenuItem.setIconURI("platform:/plugin/com.minres.scviewer.e4.application/icons/tick.png");
|
||||
}else
|
||||
handledMenuItem.setIconURI("platform:/plugin/com.minres.scviewer.e4.application/icons/empty.png");
|
||||
handledMenuItem.setContributorURI("platform:/plugin/com.minres.scviewer.e4.application");
|
||||
handledMenuItem.setCommand(command);
|
||||
handledMenuItem.getParameters().add(parameter);
|
||||
items.add(handledMenuItem);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,109 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2015 MINRES Technologies GmbH and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* MINRES Technologies GmbH - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package com.minres.scviewer.e4.application.elements;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Named;
|
||||
|
||||
import org.eclipse.e4.core.di.annotations.Optional;
|
||||
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
|
||||
import org.eclipse.e4.ui.services.IServiceConstants;
|
||||
import org.eclipse.e4.ui.workbench.modeling.EPartService;
|
||||
import org.eclipse.jface.viewers.ArrayContentProvider;
|
||||
import org.eclipse.jface.viewers.ComboViewer;
|
||||
import org.eclipse.jface.viewers.ISelection;
|
||||
import org.eclipse.jface.viewers.ISelectionChangedListener;
|
||||
import org.eclipse.jface.viewers.IStructuredSelection;
|
||||
import org.eclipse.jface.viewers.SelectionChangedEvent;
|
||||
import org.eclipse.jface.viewers.StructuredSelection;
|
||||
import org.eclipse.swt.SWT;
|
||||
import org.eclipse.swt.widgets.Combo;
|
||||
import org.eclipse.swt.widgets.Composite;
|
||||
|
||||
import com.minres.scviewer.database.ITx;
|
||||
import com.minres.scviewer.database.RelationType;
|
||||
import com.minres.scviewer.e4.application.parts.PartListener;
|
||||
import com.minres.scviewer.e4.application.parts.WaveformViewerPart;
|
||||
|
||||
public class RelationTypeToolControl extends PartListener implements ISelectionChangedListener {
|
||||
|
||||
EPartService partService;
|
||||
|
||||
ComboViewer comboViewer;
|
||||
|
||||
WaveformViewerPart waveformViewerPart;
|
||||
|
||||
RelationType dummy = RelationType.create("------------");
|
||||
|
||||
@Inject
|
||||
public RelationTypeToolControl(EPartService partService) {
|
||||
this.partService=partService;
|
||||
partService.addPartListener(this);
|
||||
}
|
||||
|
||||
@PostConstruct
|
||||
public void createGui(Composite parent) {
|
||||
comboViewer = new ComboViewer(parent, SWT.NONE);
|
||||
Combo comboBox = comboViewer.getCombo();
|
||||
comboBox.setBounds(0, 0, 26, 22);
|
||||
comboBox.setText("Select");
|
||||
comboViewer.setContentProvider(new ArrayContentProvider());
|
||||
comboViewer.setInput(new RelationType[] {dummy});
|
||||
comboViewer.setSelection(new StructuredSelection(dummy));
|
||||
comboViewer.addSelectionChangedListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void partActivated(MPart part) {
|
||||
if(part.getObject() instanceof WaveformViewerPart){
|
||||
waveformViewerPart=(WaveformViewerPart) part.getObject();
|
||||
checkSelection(waveformViewerPart.getSelection());
|
||||
} else {
|
||||
waveformViewerPart=null;
|
||||
checkSelection(new StructuredSelection());
|
||||
}
|
||||
}
|
||||
|
||||
@Inject
|
||||
public void setSelection(@Named(IServiceConstants.ACTIVE_SELECTION) @Optional IStructuredSelection selection, EPartService partService){
|
||||
MPart part = partService.getActivePart();
|
||||
if(part!=null && part.getObject() instanceof WaveformViewerPart && comboViewer!=null){
|
||||
checkSelection(selection);
|
||||
}
|
||||
}
|
||||
|
||||
protected void checkSelection(ISelection selection) {
|
||||
if( selection instanceof IStructuredSelection) {
|
||||
Object object= ((IStructuredSelection)selection).getFirstElement();
|
||||
if(object instanceof ITx && waveformViewerPart!=null){
|
||||
comboViewer.getCombo().setEnabled(true);
|
||||
comboViewer.setInput(waveformViewerPart.getSelectionRelationTypes());//getAllRelationTypes());
|
||||
comboViewer.setSelection(new StructuredSelection(waveformViewerPart.getRelationTypeFilter()));
|
||||
return;
|
||||
}
|
||||
}
|
||||
comboViewer.getCombo().setEnabled(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void selectionChanged(SelectionChangedEvent event) {
|
||||
MPart part = partService.getActivePart();
|
||||
if(part!=null && part.getObject() instanceof WaveformViewerPart && !event.getSelection().isEmpty()){
|
||||
WaveformViewerPart waveformViewerPart=(WaveformViewerPart) part.getObject();
|
||||
if(event.getSelection() instanceof IStructuredSelection){
|
||||
waveformViewerPart.setNavigationRelationType(
|
||||
(RelationType)((IStructuredSelection)event.getSelection()).getFirstElement());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user