diff --git a/org.fortiss.tooling.kernel.ui/plugin.xml b/org.fortiss.tooling.kernel.ui/plugin.xml index 048d83936ffe6338bb51552990e6cc9a1c961eba..94e069bb7a565d4a0f886830ba0afddf9b6435bc 100644 --- a/org.fortiss.tooling.kernel.ui/plugin.xml +++ b/org.fortiss.tooling.kernel.ui/plugin.xml @@ -32,13 +32,6 @@ name="Model Navigator" restorable="true"> </view> - <view - class="org.fortiss.tooling.kernel.ui.internal.views.MarkerViewPart" - icon="icons/marker_view.gif" - id="org.fortiss.tooling.kernel.model.marker" - name="Model Markers" - restorable="true"> - </view> <view class="org.fortiss.tooling.kernel.ui.internal.views.ModelElementsViewFX" icon="icons/library.png" @@ -54,19 +47,20 @@ name="Kernel Introspection System Service (KISS)" restorable="true"> </view> - <view - class="org.fortiss.tooling.kernel.ui.internal.views.ErrorViewFX.ErrorViewFXViewPart" - id="org.fortiss.tooling.kernel.ui.internal.views.ErrorViewFXViewPart" - name="Error FXView" - restorable="true"> - </view> - <view - class="org.fortiss.tooling.kernel.ui.internal.views.MarkerViewEditorFX.ErrorViewEditorTableFXViewPart" - id="org.fortiss.tooling.kernel.ui.internal.views.MarkerViewEditorFX" - name="Marker View FXV" - restorable="true"> - </view> + <view + class="org.fortiss.tooling.kernel.ui.internal.views.ErrorViewFX.ErrorViewFXViewPart" + icon="icons/marker_view.gif" + id="org.fortiss.tooling.kernel.ui.internal.views.ErrorViewFX.ErrorViewFXViewPart" + name="Marker View FX" + restorable="true"> + </view> + <view + class="org.fortiss.tooling.kernel.ui.internal.views.MarkerViewPart" + id="org.fortiss.tooling.kernel.ui.internal.views.MarkerViewPart" + name="Marker View OLD" + restorable="true"> + </view> diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/MarkerService.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/MarkerService.java index 208f97f3ccabf0947702a17ddca23d8766a268f4..8d4f727c1dcf0eaa951ae6beb65f1f94f5d24b5f 100644 --- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/MarkerService.java +++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/MarkerService.java @@ -43,7 +43,7 @@ import org.fortiss.tooling.kernel.extension.data.ITopLevelElement; import org.fortiss.tooling.kernel.service.IConstraintCheckerService; import org.fortiss.tooling.kernel.service.IPersistencyService; import org.fortiss.tooling.kernel.service.listener.IPersistencyServiceListener; -import org.fortiss.tooling.kernel.ui.internal.views.MarkerViewPart; +import org.fortiss.tooling.kernel.ui.internal.views.ErrorViewFX.ErrorViewFXViewPart; import org.fortiss.tooling.kernel.ui.service.IMarkerService; /** @@ -91,7 +91,7 @@ public class MarkerService implements IMarkerService, IPersistencyServiceListene private final List<ITopLevelElement> invalidElements = new LinkedList<ITopLevelElement>(); /** Stores the marker view. */ - private MarkerViewPart markerView; + private ErrorViewFXViewPart markerView; /** Stores the constraint checking job. */ private final Job constraintCheckerJob = new Job("Model Constraint Checker Job") { @@ -139,7 +139,7 @@ public class MarkerService implements IMarkerService, IPersistencyServiceListene } /** Sets the current marker view. */ - public void setMarkerViewPart(MarkerViewPart view) { + public void setMarkerViewPart(ErrorViewFXViewPart view) { this.markerView = view; } diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/ErrorViewFXEditorContentProvider.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/ErrorViewFXEditorContentProvider.java deleted file mode 100644 index 02a135ecac0c3f931036bb4d9e9d1c571d5bc54d..0000000000000000000000000000000000000000 --- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/ErrorViewFXEditorContentProvider.java +++ /dev/null @@ -1,104 +0,0 @@ -/*-------------------------------------------------------------------------+ -| Copyright 2020 fortiss GmbH | -| | -| Licensed under the Apache License, Version 2.0 (the "License"); | -| you may not use this file except in compliance with the License. | -| You may obtain a copy of the License at | -| | -| http://www.apache.org/licenses/LICENSE-2.0 | -| | -| Unless required by applicable law or agreed to in writing, software | -| distributed under the License is distributed on an "AS IS" BASIS, | -| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | -| See the License for the specific language governing permissions and | -| limitations under the License. | -+--------------------------------------------------------------------------*/ -package org.fortiss.tooling.kernel.ui.internal.views.ErrorViewFX; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -import org.eclipse.emf.ecore.EObject; -import org.eclipse.jface.viewers.ITreeContentProvider; -import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeContentProviderBase; -import org.fortiss.tooling.kernel.extension.data.IConstraintViolation; -import org.fortiss.tooling.kernel.extension.data.IConstraintViolation.ESeverity; -import org.fortiss.tooling.kernel.ui.service.IMarkerService; - -/** - * Content provider for FX-based Error View editor. - * - * @author abid - */ -public class ErrorViewFXEditorContentProvider extends DynamicTreeContentProviderBase<EObject> - implements ITreeContentProvider { - - private ErrorViewFXViewPart errorViewFXViewPart; - - /** - * @param errorViewFXViewPart - */ - public ErrorViewFXEditorContentProvider(ErrorViewFXViewPart errorViewFXViewPart) { - this.errorViewFXViewPart = errorViewFXViewPart; - } - - /** - * - */ - public ErrorViewFXEditorContentProvider() { - // TODO Auto-generated constructor stub - } - - /** {@inheritDoc} */ - @SuppressWarnings("unchecked") - @Override - protected Collection<? extends EObject> getChildren(EObject parent) { - ArrayList<EObject> result = new ArrayList<EObject>(); - if(parent instanceof IConstraintViolation) { - IConstraintViolation violation = (IConstraintViolation)parent; - result.addAll((Collection<? extends EObject>)violation); - } - System.out.println(result); - return result; - } - - /** {@inheritDoc} */ - @Override - public Object[] getElements(Object inputElement) { - List<ESeverity> result = new ArrayList<ESeverity>(); - for(ESeverity sev : ESeverity.values()) { - if(sev != ESeverity.lowest() && errorViewFXViewPart.getToggleState(sev)) { - result.add(sev); - } - } - return result.toArray(); - } - - /** {@inheritDoc} */ - @Override - public Object[] getChildren(Object parentElement) { - - if(parentElement instanceof ESeverity) { - return IMarkerService.getInstance() - .getAllViolationsWithSeverity((ESeverity)parentElement).toArray(); - } - return null; - } - - /** {@inheritDoc} */ - @Override - public Object getParent(Object element) { - if(element instanceof IConstraintViolation<?>) { - return ((IConstraintViolation<?>)element).getSeverity(); - } - return null; - } - - /** {@inheritDoc} */ - @Override - public boolean hasChildren(Object element) { - Object[] objs = getChildren(element); - return objs != null && objs.length > 0; - } -} diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/ErrorViewFXLayout.fxml b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/ErrorViewFXLayout.fxml index e5893b692dd5cbd0bb94f30437034eb7af27054c..047e45b0cf1374b8403fd4795f033031fc97d20f 100644 --- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/ErrorViewFXLayout.fxml +++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/ErrorViewFXLayout.fxml @@ -1,33 +1,27 @@ <?xml version="1.0" encoding="UTF-8"?> -<?import javafx.scene.control.Label?> -<?import javafx.scene.control.TreeTableColumn?> -<?import javafx.scene.control.TreeTableView?> -<?import javafx.scene.layout.AnchorPane?> -<?import javafx.scene.layout.Pane?> -<?import javafx.scene.text.Font?> +<?import javafx.scene.control.CheckBox?> +<?import javafx.scene.control.ScrollPane?> +<?import javafx.scene.layout.BorderPane?> +<?import javafx.scene.layout.HBox?> +<?import javafx.scene.layout.VBox?> -<AnchorPane prefHeight="360.0" prefWidth="614.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1"> - <children> - <Pane layoutX="-81.0" layoutY="-160.0" prefHeight="367.0" prefWidth="622.0" AnchorPane.bottomAnchor="-7.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="-8.0" AnchorPane.topAnchor="0.0"> + +<ScrollPane xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1"> + <content> + <VBox> <children> - <Label fx:id="displayLabel" layoutX="106.0" layoutY="155.0"> - <font> - <Font size="24.0" /> - </font></Label> - <TreeTableView layoutX="6.0" layoutY="30.0" prefHeight="327.0" prefWidth="595.0"> - <columns> - <TreeTableColumn fx:id="El" prefWidth="146.39999103546143" text="Element" /> - <TreeTableColumn fx:id="Ex" prefWidth="221.59999084472656" text="Explanation" /> - <TreeTableColumn fx:id="Pr" prefWidth="224.0001220703125" text="Project" /> - </columns> - </TreeTableView> - <Label layoutX="6.0" layoutY="7.0" prefHeight="17.0" prefWidth="87.0" text="Error View" wrapText="true"> - <font> - <Font name="Arial Bold Italic" size="15.0" /> - </font> - </Label> + <HBox> + <children> + <CheckBox fx:id="errorBtn" mnemonicParsing="false" onAction="#onErrorBtn" text="Error" /> + <CheckBox fx:id="infoBtn" mnemonicParsing="false" onAction="#onInfoBtn" text="Info" /> + <CheckBox fx:id="debugBtn" mnemonicParsing="false" onAction="#onDebugBtn" text="Debug" /> + <CheckBox fx:id="warningBtn" mnemonicParsing="false" onAction="#onWarningBtn" text="Warning" /> + <CheckBox fx:id="fatalBtn" mnemonicParsing="false" onAction="#onFatalBtn" prefHeight="18.0" prefWidth="93.0" text="Fatal" /> + </children> + </HBox> + <BorderPane fx:id="pane" prefHeight="200.0" prefWidth="200.0" /> </children> - </Pane> - </children> -</AnchorPane> + </VBox> + </content> +</ScrollPane> diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/ErrorViewFXLayoutController.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/ErrorViewFXLayoutController.java index 065d057bbd3892f220b7c77125e504795614b0b6..d9d4d496b8c7b4604a27f34457247172e9731f2e 100644 --- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/ErrorViewFXLayoutController.java +++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/ErrorViewFXLayoutController.java @@ -15,10 +15,18 @@ +--------------------------------------------------------------------------*/ package org.fortiss.tooling.kernel.ui.internal.views.ErrorViewFX; +import java.util.Map; + +import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeContentProviderBase; +import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTableUIProviderBase; +import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTableViewer; import org.fortiss.tooling.common.ui.javafx.layout.CompositeFXControllerBase; +import org.fortiss.tooling.kernel.extension.data.IConstraintViolation.ESeverity; +import javafx.fxml.FXML; import javafx.scene.Node; -import javafx.scene.control.TreeTableView; +import javafx.scene.control.CheckBox; +import javafx.scene.layout.BorderPane; /** * @@ -38,23 +46,80 @@ import javafx.scene.control.TreeTableView; public class ErrorViewFXLayoutController extends CompositeFXControllerBase<Node, Node> { - /** {@inheritDoc} */ + /** Debug Button */ + @FXML + private CheckBox debugBtn; + /** Info Button */ + @FXML + private CheckBox infoBtn; + /** Warning Button */ + @FXML + private CheckBox warningBtn; + /** Error Button */ + @FXML + private CheckBox errorBtn; + /** Fatal Button */ + @FXML + private CheckBox fatalBtn; + /** Border Pane for the tree table */ + @FXML + private BorderPane pane; + + /** Toggle State */ + private Map<ESeverity, Boolean> toggleState; /** - * {@link TreeTableView} displaying the ECU's name and safety level. + * @param toggleState */ + public ErrorViewFXLayoutController(Map<ESeverity, Boolean> toggleState) { + this.toggleState = toggleState; + } - @Override + /** Called when debug checkbox is pushed. */ + public void onDebugBtn() { - public String getFXMLLocation() { + } + + /** Called when info checkbox is pushed. */ + public void onInfoBtn() { + + } + + /** Called when warning checkbox is pushed. */ + public void onWarningBtn() { + } + + /** Called when error checkbox is pushed. */ + public void onErrorBtn() { + + } + + /** Called when fatal checkbox is pushed. */ + public void onFatalBtn() { + + } + + @Override + public String getFXMLLocation() { return "ErrorViewFXLayout.fxml"; } /** {@inheritDoc} */ @Override public void initialize() { - // TODO Auto-generated method stub + DynamicTreeContentProviderBase<Object> contentProvider = new MarkerViewFXContentProvider(); + DynamicTreeTableUIProviderBase<Object> uiProvider = new MarkerViewFXUIProvider(); + + DynamicTreeTableViewer<Object> treeTable = new DynamicTreeTableViewer<Object>(new Object(), + false, 2, contentProvider, uiProvider); + + treeTable.addColumn("Severity", 80); + treeTable.addColumn("Element", 80); + treeTable.addColumn("Explanation", 80); + treeTable.addColumn("Project", 80); + pane.setCenter(treeTable.getControl()); + pane.layout(); } } diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/ErrorViewFXViewPart.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/ErrorViewFXViewPart.java index a5fc0100a60377123c11c8eb4d7cc0675758446d..c3c9c47530969649fbbd517af126b4c8ab91c824 100644 --- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/ErrorViewFXViewPart.java +++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/ErrorViewFXViewPart.java @@ -24,26 +24,12 @@ import static org.fortiss.tooling.kernel.extension.data.IConstraintViolation.ESe import java.util.HashMap; import java.util.Map; -import org.eclipse.emf.ecore.EObject; import org.eclipse.jface.action.Action; -import org.eclipse.jface.action.IToolBarManager; -import org.eclipse.jface.action.Separator; -import org.eclipse.jface.viewers.CellLabelProvider; -import org.eclipse.jface.viewers.ColumnViewerToolTipSupport; -import org.eclipse.jface.viewers.ViewerCell; -import org.eclipse.swt.SWT; -import org.eclipse.swt.layout.FillLayout; -import org.eclipse.swt.widgets.Composite; import org.fortiss.tooling.common.ui.javafx.AF3FXViewPart; -import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTableViewer; -import org.fortiss.tooling.kernel.extension.data.IConstraintViolation; import org.fortiss.tooling.kernel.extension.data.IConstraintViolation.ESeverity; -import org.fortiss.tooling.kernel.extension.data.ITopLevelElement; -import org.fortiss.tooling.kernel.service.IPersistencyService; -import org.fortiss.tooling.kernel.ui.extension.IModelElementHandler; +import org.fortiss.tooling.kernel.ui.internal.MarkerService; import org.fortiss.tooling.kernel.ui.internal.views.MarkerViewerGUI; import org.fortiss.tooling.kernel.ui.service.IMarkerService; -import org.fortiss.tooling.kernel.ui.service.IModelElementHandlerService; /** * @@ -61,14 +47,13 @@ import org.fortiss.tooling.kernel.ui.service.IModelElementHandlerService; * */ -public class ErrorViewFXViewPart extends AF3FXViewPart /** implements ISelectionProvider */ -{ +public class ErrorViewFXViewPart extends AF3FXViewPart { - /** The tree-table viewer. */ - private DynamicTreeTableViewer<EObject> treeTableViewer; + /** The classes ID. */ + public static final String ID = ErrorViewFXViewPart.class.getName(); /** Stores the toggle state of for each severity level. */ - private Map<ESeverity, Boolean> toggleState = new HashMap<ESeverity, Boolean>(); + private static Map<ESeverity, Boolean> toggleState = new HashMap<ESeverity, Boolean>(); /** GUI builder viewer instance. */ private MarkerViewerGUI gui; @@ -79,8 +64,8 @@ public class ErrorViewFXViewPart extends AF3FXViewPart /** implements ISelection /** Constructor. */ public ErrorViewFXViewPart() throws Exception { - - super(new ErrorViewFXLayoutController(), null); + super(new ErrorViewFXLayoutController(toggleState), null); + ((MarkerService)IMarkerService.getInstance()).setMarkerViewPart(this); toggleState.put(DEBUG, false); toggleState.put(INFO, false); toggleState.put(WARNING, true); @@ -88,149 +73,13 @@ public class ErrorViewFXViewPart extends AF3FXViewPart /** implements ISelection toggleState.put(FATAL, false); } - /** {@inheritDoc} */ - @Override - public void createPartControl(Composite parent) { - - parent.setLayout(new FillLayout()); - gui = new MarkerViewerGUI(parent, SWT.NONE); - - gui.getTreeViewer().setContentProvider(new ErrorViewFXEditorContentProvider(this)); - - gui.getSeverityColumn().setLabelProvider(new CellLabelProvider() { - @Override - public void update(ViewerCell cell) { - - if(cell.getElement() instanceof ESeverity) { - final ESeverity severity = (ESeverity)cell.getElement(); - cell.setText(severity.toString()); - cell.setImage(IMarkerService.getInstance().getSharedImageFor(severity, false)); - } else { - cell.setText(""); - } - } - }); - gui.getElementColumn().setLabelProvider(new CellLabelProvider() { - @Override - public void update(ViewerCell cell) { - if(cell.getElement() instanceof IConstraintViolation) { - IConstraintViolation<? extends EObject> violation = - (IConstraintViolation<? extends EObject>)cell.getElement(); - IModelElementHandlerService hs = IModelElementHandlerService.getInstance(); - IModelElementHandler<EObject> handler = - hs.getModelElementHandler(violation.getSource()); - cell.setText(handler != null ? handler.getName(violation.getSource()) : ""); - } else { - cell.setText(""); - } - } - }); - gui.getExplanationColumn().setLabelProvider(new CellLabelProvider() { - @Override - public void update(ViewerCell cell) { - if(cell.getElement() instanceof IConstraintViolation) { - IConstraintViolation<? extends EObject> violation = - (IConstraintViolation<? extends EObject>)cell.getElement(); - cell.setText(violation.getExplanation()); - } else { - cell.setText(""); - } - } - }); - - gui.getProjectColumn().setLabelProvider(new CellLabelProvider() { - @Override - public void update(ViewerCell cell) { - if(cell.getElement() instanceof IConstraintViolation) { - IConstraintViolation<? extends EObject> violation = - (IConstraintViolation<? extends EObject>)cell.getElement(); - IPersistencyService ps = IPersistencyService.getInstance(); - ITopLevelElement topElement = ps.getTopLevelElementFor(violation.getSource()); - - IModelElementHandler<EObject> handler = null; - EObject rootElement = null; - if(topElement != null) { - rootElement = topElement.getRootModelElement(); - - IModelElementHandlerService hs = IModelElementHandlerService.getInstance(); - handler = hs.getModelElementHandler(rootElement); - } - cell.setText(handler != null ? handler.getName(rootElement) : ""); - } else { - cell.setText(""); - } - } - }); - - ColumnViewerToolTipSupport.enableFor(gui.getElementColumn().getViewer()); - ColumnViewerToolTipSupport.enableFor(gui.getExplanationColumn().getViewer()); - ColumnViewerToolTipSupport.enableFor(gui.getProjectColumn().getViewer()); - - gui.getTreeViewer().setInput(IMarkerService.getInstance()); - - createToggleActions(); - } - - /** {@inheritDoc} */ - @Override - public void setFocus() { - gui.getTreeViewer().getControl().setFocus(); + /** Called when there are error amrker updates. */ + public void refresh() { + // TODO } /** Returns toggleState. */ /* package */Boolean getToggleState(ESeverity sev) { return toggleState.get(sev); } - - /** Creates the toggle actions. */ - private void createToggleActions() { - toggleSeverityFilterAction[0] = - new SeverityFilterAction("D", "Toggle DEBUG Messages", DEBUG); - toggleSeverityFilterAction[1] = new SeverityFilterAction("I", "Toggle INFO Messages", INFO); - toggleSeverityFilterAction[2] = - new SeverityFilterAction("W", "Toggle WARNING Messages", WARNING); - toggleSeverityFilterAction[3] = - new SeverityFilterAction("E", "Toggle ERROR Messages", ERROR); - toggleSeverityFilterAction[4] = - new SeverityFilterAction("F", "Toggle FATAL Messages", FATAL); - - IToolBarManager toolBarManager = getViewSite().getActionBars().getToolBarManager(); - Separator additionsSeperator = new Separator("additions"); - additionsSeperator.setVisible(true); - toolBarManager.add(additionsSeperator); - for(int i = 0; i < toggleSeverityFilterAction.length; i++) { - toolBarManager.insertAfter("additions", toggleSeverityFilterAction[i]); - } - } - - /** Action for severity filter toggle. */ - private class SeverityFilterAction extends Action { - /** Stores the severity level this action toggles. */ - private final ESeverity severity; - - /** Constructor. */ - public SeverityFilterAction(String name, String tooltip, ESeverity severity) { - super(name, SWT.TOGGLE); - this.severity = severity; - setToolTipText(tooltip); - setChecked(toggleState.get(severity)); - setImageDescriptor(IMarkerService.getInstance().getImageFor(severity, false)); - } - - /** {@inheritDoc} */ - @Override - public void run() { - // invert state - toggleState.put(severity, !toggleState.get(severity)); - refresh(); - } - - /** Refreshes the view. Needs to be called on UI thread. */ - public void refresh() { - if(!gui.getTreeViewer().getControl().isDisposed()) { - gui.getTreeViewer().refresh(); - } - } - } - } diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/MarkerViewEditorFX/SimpleAnnotationTableFXViewPart.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/MarkerViewFXContentProvider.java similarity index 52% rename from org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/MarkerViewEditorFX/SimpleAnnotationTableFXViewPart.java rename to org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/MarkerViewFXContentProvider.java index 91f4fa5bb36b619acf930da167cf54919e50d6be..4e2b03f7713e66a946046cc3c0205d65b8ab5586 100644 --- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/MarkerViewEditorFX/SimpleAnnotationTableFXViewPart.java +++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/MarkerViewFXContentProvider.java @@ -1,5 +1,5 @@ /*-------------------------------------------------------------------------+ -| Copyright 2019 fortiss GmbH | +| Copyright 2020 fortiss GmbH | | | | Licensed under the Apache License, Version 2.0 (the "License"); | | you may not use this file except in compliance with the License. | @@ -13,22 +13,38 @@ | See the License for the specific language governing permissions and | | limitations under the License. | +--------------------------------------------------------------------------*/ -package org.fortiss.tooling.kernel.ui.internal.views.MarkerViewEditorFX; +package org.fortiss.tooling.kernel.ui.internal.views.ErrorViewFX; -import org.eclipse.fx.ui.workbench3.FXViewPart; -import org.fortiss.tooling.common.ui.javafx.AF3FXViewPart; +import java.util.ArrayList; +import java.util.Collection; -import javafx.scene.control.TreeTableView; +import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeContentProviderBase; +import org.fortiss.tooling.kernel.extension.data.IConstraintViolation; /** - * {@link FXViewPart} for containing the demo controller for implementing a {@link TreeTableView}. * - * @author munaro + * @author abid */ -public class SimpleAnnotationTableFXViewPart extends AF3FXViewPart { +public class MarkerViewFXContentProvider extends DynamicTreeContentProviderBase<Object> { - /** Constructor. */ - public SimpleAnnotationTableFXViewPart() throws Exception { - super(new SimpleAnnotationTableFXController(), null); + private MarkerViewFXContentProvider errorViewFXViewPart; + + /** + * + */ + public MarkerViewFXContentProvider() { + // TODO Auto-generated constructor stub + } + + /** {@inheritDoc} */ + @SuppressWarnings("unchecked") + @Override + protected Collection<? extends Object> getChildren(Object parent) { + ArrayList<IConstraintViolation> result = new ArrayList<IConstraintViolation>(); + if(parent instanceof IConstraintViolation) { + IConstraintViolation violation = (IConstraintViolation)parent; + result.add(violation); + } + return result; } } diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/fx/MarkerViewFXUIProvider.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/MarkerViewFXUIProvider.java similarity index 92% rename from org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/fx/MarkerViewFXUIProvider.java rename to org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/MarkerViewFXUIProvider.java index 76c1fb12920524ee654bfc7d79538de57a572324..014024647f72d1f728f97622c96d17672f382139 100644 --- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/fx/MarkerViewFXUIProvider.java +++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/MarkerViewFXUIProvider.java @@ -13,7 +13,7 @@ | See the License for the specific language governing permissions and | | limitations under the License. | +--------------------------------------------------------------------------*/ -package org.fortiss.tooling.kernel.ui.internal.views.fx; +package org.fortiss.tooling.kernel.ui.internal.views.ErrorViewFX; import org.eclipse.emf.ecore.EObject; import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTableUIProviderBase; @@ -27,18 +27,11 @@ import org.fortiss.tooling.kernel.ui.service.IModelElementHandlerService; * * @author abid */ -public class MarkerViewFXUIProvider extends DynamicTreeTableUIProviderBase<EObject> { - - /** - * @param markerViewFXEditor - */ - public MarkerViewFXUIProvider(MarkerViewFXEditor markerViewFXEditor) { - // TODO Auto-generated constructor stub - } +public class MarkerViewFXUIProvider extends DynamicTreeTableUIProviderBase<Object> { /** {@inheritDoc} */ @Override - public String getLabel(EObject element, int column) { + public String getLabel(Object element, int column) { // column for ESevertiy Type Error, Warning etc.... if(column == 0) { diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/MarkerViewEditorFX/ErrorViewEditorFXLayout.fxml b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/MarkerViewEditorFX/ErrorViewEditorFXLayout.fxml deleted file mode 100644 index 34ddf217aee6a59dac3715ddc65a96693fd23926..0000000000000000000000000000000000000000 --- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/MarkerViewEditorFX/ErrorViewEditorFXLayout.fxml +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<?import javafx.scene.control.Label?> -<?import javafx.scene.control.TreeTableView?> -<?import javafx.scene.layout.AnchorPane?> -<?import javafx.scene.layout.Pane?> -<?import javafx.scene.text.Font?> - -<AnchorPane prefHeight="360.0" prefWidth="614.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1"> - <children> - <Pane layoutX="-81.0" layoutY="-160.0" prefHeight="367.0" prefWidth="622.0" AnchorPane.bottomAnchor="-7.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="-8.0" AnchorPane.topAnchor="0.0"> - <children> - <Label fx:id="displayLabel" layoutX="106.0" layoutY="155.0"> - <font> - <Font size="24.0" /> - </font></Label> - <TreeTableView layoutX="6.0" layoutY="30.0" prefHeight="327.0" prefWidth="595.0" /> - <Label layoutX="6.0" layoutY="7.0" prefHeight="17.0" prefWidth="104.0" text="Marker View" wrapText="true"> - <font> - <Font name="Arial Bold Italic" size="15.0" /> - </font> - </Label> - </children> - </Pane> - </children> -</AnchorPane> diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/MarkerViewEditorFX/ErrorViewEditorTableFXController.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/MarkerViewEditorFX/ErrorViewEditorTableFXController.java deleted file mode 100644 index 7a10370e7f2997c684baa5e8849b28193f3c598c..0000000000000000000000000000000000000000 --- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/MarkerViewEditorFX/ErrorViewEditorTableFXController.java +++ /dev/null @@ -1,89 +0,0 @@ -/*-------------------------------------------------------------------------+ -| Copyright 2020 fortiss GmbH | -| | -| Licensed under the Apache License, Version 2.0 (the "License"); | -| you may not use this file except in compliance with the License. | -| You may obtain a copy of the License at | -| | -| http://www.apache.org/licenses/LICENSE-2.0 | -| | -| Unless required by applicable law or agreed to in writing, software | -| distributed under the License is distributed on an "AS IS" BASIS, | -| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | -| See the License for the specific language governing permissions and | -| limitations under the License. | -+--------------------------------------------------------------------------*/ -package org.fortiss.tooling.kernel.ui.internal.views.MarkerViewEditorFX; - -import java.util.HashMap; -import java.util.Map; - -import org.eclipse.emf.ecore.EObject; -import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTableViewer; -import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeViewer; -import org.fortiss.tooling.common.ui.javafx.layout.CompositeFXControllerBase; -import org.fortiss.tooling.kernel.extension.data.IConstraintViolation.ESeverity; - -import javafx.fxml.FXML; -import javafx.scene.Node; -import javafx.scene.control.TextField; -import javafx.scene.control.TreeTableView; -import javafx.scene.layout.AnchorPane; - -/** - * - * @author abid - */ -public class ErrorViewEditorTableFXController extends CompositeFXControllerBase<AnchorPane, Node> { - - /** Stores the toggle state of for each severity level. */ - private Map<ESeverity, Boolean> toggleState = new HashMap<ESeverity, Boolean>(); - - /** Provided tree table view. */ - @FXML - private TreeTableView<EObject> treeTableViewer; - - /** References the constructed {@link DynamicTreeViewer} "controller". */ - protected DynamicTreeTableViewer<EObject> dynTreeViewer; - - /** The filter text field if filtering is enabled in content provider. */ - private TextField filterWidget; - - /** The model listener. */ - // private KernelServiceBasedModelListenerBase<EO> modelListener; - - /** {@inheritDoc} */ - @Override - public String getFXMLLocation() { - return "ErrorViewEditorFXLayout.fxml"; - } - - /** {@inheritDoc} */ - @Override - public void initialize() { - - // DynamicTreeContentProviderBase<EObject> contentProvider = - // new ErrorViewFXEditorTableContentProvider(); - // DynamicTreeTableUIProviderBase<EObject> uiProvider = - // new ErrorViewEditorTableUIProvider(this); - // BorderPane pane = new BorderPane(); - // - // dynTreeViewer = new DynamicTreeTableViewer<EObject>(treeTableViewer, null, true, 0, - // contentProvider, uiProvider); - // - // // Clear columns - // dynTreeViewer.getControl().getColumns().clear(); - // - // // Name and comment column. - // dynTreeViewer.addColumn("Severity", 0, false); - // dynTreeViewer.addColumn("Element", 0, false); - // dynTreeViewer.addColumn("Explanation", 0, false); - // dynTreeViewer.addColumn("Project", 0, false); - // // Set minimum width for columns - // dynTreeViewer.getControl().getColumns().forEach(column -> { - // int MIN_COL_WIDTH = 100; - // column.setMinWidth(MIN_COL_WIDTH); - // }); - } - -} diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/MarkerViewEditorFX/ErrorViewEditorTableFXViewPart.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/MarkerViewEditorFX/ErrorViewEditorTableFXViewPart.java deleted file mode 100644 index e81d7cf41c5115ba1b4ecfacd56e7687d6e5f390..0000000000000000000000000000000000000000 --- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/MarkerViewEditorFX/ErrorViewEditorTableFXViewPart.java +++ /dev/null @@ -1,81 +0,0 @@ -/*-------------------------------------------------------------------------+ -| Copyright 2020 fortiss GmbH | -| | -| Licensed under the Apache License, Version 2.0 (the "License"); | -| you may not use this file except in compliance with the License. | -| You may obtain a copy of the License at | -| | -| http://www.apache.org/licenses/LICENSE-2.0 | -| | -| Unless required by applicable law or agreed to in writing, software | -| distributed under the License is distributed on an "AS IS" BASIS, | -| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | -| See the License for the specific language governing permissions and | -| limitations under the License. | -+--------------------------------------------------------------------------*/ -package org.fortiss.tooling.kernel.ui.internal.views.MarkerViewEditorFX; - -import java.util.HashMap; -import java.util.Map; - -import org.eclipse.emf.ecore.EObject; -import org.fortiss.tooling.common.ui.javafx.AF3FXViewPart; -import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTableViewer; -import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeViewer; -import org.fortiss.tooling.kernel.extension.data.IConstraintViolation.ESeverity; - -import javafx.fxml.FXML; -import javafx.scene.control.TextField; -import javafx.scene.control.TreeTableView; - -/** - * - * @author abid - */ -public class ErrorViewEditorTableFXViewPart extends AF3FXViewPart { - - /** Stores the toggle state of for each severity level. */ - private Map<ESeverity, Boolean> toggleState = new HashMap<ESeverity, Boolean>(); - - /** Provided tree table view. */ - @FXML - private TreeTableView<EObject> treeTableViewer; - - /** References the constructed {@link DynamicTreeViewer} "controller". */ - protected DynamicTreeTableViewer<EObject> dynTreeViewer; - - /** The filter text field if filtering is enabled in content provider. */ - private TextField filterWidget; - - /** Constructor. */ - public ErrorViewEditorTableFXViewPart() throws Exception { - super(new ErrorViewEditorTableFXController(), null); - } - - /** {@inheritDoc} */ - // @Override - // public void createPartControl(Composite parent) { - // DynamicTreeContentProviderBase<EObject> contentProvider = - // new ErrorViewFXEditorTableContentProvider(); - // DynamicTreeTableUIProviderBase<EObject> uiProvider = - // new ErrorViewEditorTableUIProvider(this); - // BorderPane pane = new BorderPane(); - - // dynTreeViewer = new DynamicTreeTableViewer<EObject>(treeTableViewer, null, true, 0, - // contentProvider, uiProvider); - - // Clear columns - // dynTreeViewer.getControl().getColumns().clear(); - - // Name and comment column. - // dynTreeViewer.addColumn("Severity", 0, false); - // dynTreeViewer.addColumn("Element", 0, false); - // dynTreeViewer.addColumn("Explanation", 0, false); - // dynTreeViewer.addColumn("Project", 0, false); - // // Set minimum width for columns - // dynTreeViewer.getControl().getColumns().forEach(column -> { - // int MIN_COL_WIDTH = 100; - // column.setMinWidth(MIN_COL_WIDTH); - // }); - // } -} diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/MarkerViewEditorFX/ErrorViewEditorTableUIProvider.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/MarkerViewEditorFX/ErrorViewEditorTableUIProvider.java deleted file mode 100644 index ff96c2dba2290ed9cc750e87b38fcd136c95d5e8..0000000000000000000000000000000000000000 --- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/MarkerViewEditorFX/ErrorViewEditorTableUIProvider.java +++ /dev/null @@ -1,114 +0,0 @@ -/*-------------------------------------------------------------------------+ -| Copyright 2020 fortiss GmbH | -| | -| Licensed under the Apache License, Version 2.0 (the "License"); | -| you may not use this file except in compliance with the License. | -| You may obtain a copy of the License at | -| | -| http://www.apache.org/licenses/LICENSE-2.0 | -| | -| Unless required by applicable law or agreed to in writing, software | -| distributed under the License is distributed on an "AS IS" BASIS, | -| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | -| See the License for the specific language governing permissions and | -| limitations under the License. | -+--------------------------------------------------------------------------*/ -package org.fortiss.tooling.kernel.ui.internal.views.MarkerViewEditorFX; - -import org.eclipse.emf.ecore.EObject; -import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTableUIProviderBase; -import org.fortiss.tooling.kernel.extension.data.IConstraintViolation; -import org.fortiss.tooling.kernel.extension.data.ITopLevelElement; -import org.fortiss.tooling.kernel.service.IPersistencyService; -import org.fortiss.tooling.kernel.ui.extension.IModelElementHandler; -import org.fortiss.tooling.kernel.ui.service.IModelElementHandlerService; - -/** - * - * @author abid - */ -public class ErrorViewEditorTableUIProvider extends DynamicTreeTableUIProviderBase<EObject> { - - /** - * @param errorViewEditorTableFXController - */ - public ErrorViewEditorTableUIProvider( - ErrorViewEditorTableFXController errorViewEditorTableFXController) { - // TODO Auto-generated constructor stub - } - - /** - * @param errorViewEditorTableFXViewPart - */ - public ErrorViewEditorTableUIProvider( - ErrorViewEditorTableFXViewPart errorViewEditorTableFXViewPart) { - } - - /** {@inheritDoc} */ - @Override - public String getLabel(EObject element, int column) { - - // column for ESevertiy Type Error, Warning etc.... - if(column == 0) { - return ""; - // return getModelElementHandlerName(element); - } - // column for source element - if(column == 1) { - if(element instanceof IConstraintViolation) { - IConstraintViolation<? extends EObject> violation = - (IConstraintViolation<? extends EObject>)element; - IModelElementHandlerService hs = IModelElementHandlerService.getInstance(); - IModelElementHandler<EObject> handler = - hs.getModelElementHandler(violation.getSource()); - if(handler != null) { - return handler.getName(violation.getSource()); - } else { - return ""; - } - } - // column for the Explanation Column - else if(column == 2) { - if(element instanceof IConstraintViolation) { - IConstraintViolation<? extends EObject> violation = - (IConstraintViolation<? extends EObject>)element; - return violation.getExplanation(); - } else { - return ""; - } - } - // column for the Project Column - else if(column == 3) { - - if(element instanceof IConstraintViolation) { - IConstraintViolation<? extends EObject> violation = - (IConstraintViolation<? extends EObject>)element; - IPersistencyService ps = IPersistencyService.getInstance(); - ITopLevelElement topElement = ps.getTopLevelElementFor(violation.getSource()); - - IModelElementHandler<EObject> handler = null; - EObject rootElement = null; - if(topElement != null) { - rootElement = topElement.getRootModelElement(); - - IModelElementHandlerService hs = IModelElementHandlerService.getInstance(); - handler = hs.getModelElementHandler(rootElement); - } - if(handler != null) { - return handler.getName(rootElement); - } else { - return ""; - } - } else { - return ""; - } - } - } - return ""; - } - - /** Returns the name returned by {@link IModelElementHandlerService}. */ - private String getModelElementHandlerName(EObject eo) { - return IModelElementHandlerService.getInstance().getName(eo); - } -} diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/MarkerViewEditorFX/ErrorViewFXEditorTableContentProvider.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/MarkerViewEditorFX/ErrorViewFXEditorTableContentProvider.java deleted file mode 100644 index 20f33b728dd09b8f10b1a326041f495e7f7a2d7e..0000000000000000000000000000000000000000 --- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/MarkerViewEditorFX/ErrorViewFXEditorTableContentProvider.java +++ /dev/null @@ -1,106 +0,0 @@ -/*-------------------------------------------------------------------------+ -| Copyright 2020 fortiss GmbH | -| | -| Licensed under the Apache License, Version 2.0 (the "License"); | -| you may not use this file except in compliance with the License. | -| You may obtain a copy of the License at | -| | -| http://www.apache.org/licenses/LICENSE-2.0 | -| | -| Unless required by applicable law or agreed to in writing, software | -| distributed under the License is distributed on an "AS IS" BASIS, | -| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | -| See the License for the specific language governing permissions and | -| limitations under the License. | -+--------------------------------------------------------------------------*/ -package org.fortiss.tooling.kernel.ui.internal.views.MarkerViewEditorFX; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -import org.eclipse.emf.ecore.EObject; -import org.eclipse.jface.viewers.ITreeContentProvider; -import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeContentProviderBase; -import org.fortiss.tooling.kernel.extension.data.IConstraintViolation; -import org.fortiss.tooling.kernel.extension.data.IConstraintViolation.ESeverity; -import org.fortiss.tooling.kernel.ui.service.IMarkerService; - -/** - * Content provider for FX-based Error View editor. - * - * @author abid - */ -public class ErrorViewFXEditorTableContentProvider extends DynamicTreeContentProviderBase<EObject> - implements ITreeContentProvider { - - private ErrorViewEditorTableFXViewPart errorViewFXViewPart; - - /** - * @param errorViewFXViewPart - */ - public ErrorViewFXEditorTableContentProvider( - ErrorViewEditorTableFXViewPart errorViewFXViewPart) { - this.errorViewFXViewPart = errorViewFXViewPart; - } - - /** - * - */ - public ErrorViewFXEditorTableContentProvider() { - // TODO Auto-generated constructor stub - } - - /** {@inheritDoc} */ - @SuppressWarnings("unchecked") - @Override - protected Collection<? extends EObject> getChildren(EObject parent) { - ArrayList<EObject> result = new ArrayList<EObject>(); - if(parent instanceof IConstraintViolation) { - IConstraintViolation violation = (IConstraintViolation)parent; - result.addAll((Collection<? extends EObject>)violation); - } - System.out.println(result); - return result; - } - - /** {@inheritDoc} */ - @Override - public Object[] getElements(Object inputElement) { - List<ESeverity> result = new ArrayList<ESeverity>(); - for(ESeverity sev : ESeverity.values()) { - if(sev != ESeverity.lowest() /** && errorViewFXViewPart.getToggleState(sev) */ - ) { - result.add(sev); - } - } - return result.toArray(); - } - - /** {@inheritDoc} */ - @Override - public Object[] getChildren(Object parentElement) { - - if(parentElement instanceof ESeverity) { - return IMarkerService.getInstance() - .getAllViolationsWithSeverity((ESeverity)parentElement).toArray(); - } - return null; - } - - /** {@inheritDoc} */ - @Override - public Object getParent(Object element) { - if(element instanceof IConstraintViolation<?>) { - return ((IConstraintViolation<?>)element).getSeverity(); - } - return null; - } - - /** {@inheritDoc} */ - @Override - public boolean hasChildren(Object element) { - Object[] objs = getChildren(element); - return objs != null && objs.length > 0; - } -} diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/MarkerViewEditorFX/SimpleAnnotationTableFXController.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/MarkerViewEditorFX/SimpleAnnotationTableFXController.java deleted file mode 100644 index bdfa50e4ae0e81423ae5aebf39c70061b3bef464..0000000000000000000000000000000000000000 --- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/MarkerViewEditorFX/SimpleAnnotationTableFXController.java +++ /dev/null @@ -1,246 +0,0 @@ -/*-------------------------------------------------------------------------+ -| Copyright 2018 fortiss GmbH | -| | -| Licensed under the Apache License, Version 2.0 (the "License"); | -| you may not use this file except in compliance with the License. | -| You may obtain a copy of the License at | -| | -| http://www.apache.org/licenses/LICENSE-2.0 | -| | -| Unless required by applicable law or agreed to in writing, software | -| distributed under the License is distributed on an "AS IS" BASIS, | -| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | -| See the License for the specific language governing permissions and | -| limitations under the License. | -+--------------------------------------------------------------------------*/ -package org.fortiss.tooling.kernel.ui.internal.views.MarkerViewEditorFX; - -import static javafx.collections.FXCollections.observableArrayList; -import static org.fortiss.tooling.base.utils.AnnotationUtils.getAnnotationValueProvider; -import static org.fortiss.tooling.kernel.utils.EcoreUtils.getChildrenWithType; -import static org.fortiss.tooling.kernel.utils.EcoreUtils.pickInstanceOf; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.TreeSet; - -import org.eclipse.emf.ecore.EObject; -import org.fortiss.af3.component.model.ComponentArchitecture; -import org.fortiss.af3.project.model.FileProject; -import org.fortiss.tooling.base.annotation.AnnotationEntry; -import org.fortiss.tooling.base.annotation.AnnotationValueService; -import org.fortiss.tooling.base.annotation.valueprovider.IAnnotationValueProvider; -import org.fortiss.tooling.base.model.base.HierarchicElementBase; -import org.fortiss.tooling.base.model.element.IAnnotatedSpecification; -import org.fortiss.tooling.base.model.element.IHierarchicElement; -import org.fortiss.tooling.base.model.element.IModelElement; -import org.fortiss.tooling.base.ui.annotation.view.generic.ColumnHandle; -import org.fortiss.tooling.base.ui.javafx.control.contentprovider.ChildrenContentProvider; -import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTableUIProviderBase; -import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTableViewer; -import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeViewer; -import org.fortiss.tooling.common.ui.javafx.layout.CompositeFXControllerBase; -import org.fortiss.tooling.kernel.extension.data.ITopLevelElement; -import org.fortiss.tooling.kernel.model.INamedCommentedElement; -import org.fortiss.tooling.kernel.model.IProjectRootElement; -import org.fortiss.tooling.kernel.service.IPersistencyService; -import org.fortiss.tooling.kernel.ui.extension.IModelElementHandler; -import org.fortiss.tooling.kernel.ui.service.IModelElementHandlerService; -import org.fortiss.tooling.kernel.utils.EcoreUtils; - -import javafx.embed.swt.SWTFXUtils; -import javafx.fxml.FXML; -import javafx.scene.Node; -import javafx.scene.control.ComboBox; -import javafx.scene.control.ContextMenu; -import javafx.scene.control.TreeTableView; -import javafx.scene.image.Image; -import javafx.scene.image.ImageView; -import javafx.scene.layout.AnchorPane; - -/** - * Demo controller for implementing a TreeTable. - * - * @author diewald - */ -@SuppressWarnings("unchecked") -public class SimpleAnnotationTableFXController extends CompositeFXControllerBase<AnchorPane, Node> { - - /** Provided tree table view. */ - @FXML - private TreeTableView<HierarchicElementBase> treeTableView; - - /** Provided architecture model selection ComboBox. */ - @FXML - private ComboBox<IProjectRootElement> architectureComboBox; - - /** References the constructed {@link DynamicTreeViewer} "controller". */ - protected DynamicTreeTableViewer<HierarchicElementBase> dynTreeViewer; - - /** - * Associates the handles of the annotations with their ordered column indexes. Used for the UI - * providers of cell items. - */ - Map<Integer, ColumnHandle<IAnnotatedSpecification>> colIdxAnnotationMap = new HashMap<>(); - - /** {@inheritDoc} */ - @Override - public void initialize() { - fillArchComboBox(); - - architectureComboBox.valueProperty().addListener((observable, oldValue, newValue) -> { - if(oldValue != newValue && newValue != null) { - updateTable(newValue); - } - }); - - architectureComboBox.getSelectionModel().select(0); - } - - /** Allows to select a {@link ComponentArchitecture} to display the annotation for. */ - private void fillArchComboBox() { - List<ITopLevelElement> topLevelElements = - IPersistencyService.getInstance().getTopLevelElements(); - if(!topLevelElements.isEmpty()) { - // Demo purposes: select only the first found FileProject. - FileProject firstProject = (FileProject)topLevelElements.get(0).getRootModelElement(); - IModelElementHandler<EObject> handler = - IModelElementHandlerService.getInstance().getModelElementHandler(firstProject); - List<IProjectRootElement> children = new ArrayList<>(); - if(handler != null) { - Collection<IProjectRootElement> visibleChildren = pickInstanceOf( - IProjectRootElement.class, handler.getSubnodes(firstProject)); - children.addAll(visibleChildren); - } - architectureComboBox.setItems(observableArrayList(children)); - } - } - - /** - * Updates the {@link TreeTableView} when a different architecture model is selected whose - * annotations shall be shown. - */ - private void updateTable(IProjectRootElement root) { - // Sorted set of {@link ColumnHandle} used to instantiate this {@link - // GenericAnnotationView}'s columns in the right order. - Set<ColumnHandle<IAnnotatedSpecification>> sortedColumnHandles = new TreeSet<>(); - Set<AnnotationEntry> annotationEntries = new HashSet<>(); - getChildrenWithType(root, IModelElement.class).forEach(e -> annotationEntries - .add(AnnotationValueService.getInstance().getAnnotationEntry(e))); - - // Aggregate required columns. Column order is defined by ColumnHandle.compareTo(). - for(AnnotationEntry entry : annotationEntries) { - for(IAnnotatedSpecification spec : entry.getSpecificationsList()) { - ColumnHandle<IAnnotatedSpecification> columnHandle = - new ColumnHandle<IAnnotatedSpecification>(entry, spec); - sortedColumnHandles.add(columnHandle); - } - } - - HierarchicElementBase actualRoot = null; - if(!(root instanceof HierarchicElementBase)) { - actualRoot = EcoreUtils.getFirstChildWithType(root, HierarchicElementBase.class); - } - - if(actualRoot != null) { - DynamicTreeTableUIProviderBase uiProvider = createContentUIProvider(); - dynTreeViewer = new DynamicTreeTableViewer<HierarchicElementBase>(treeTableView, - actualRoot, true, 0, new ChildrenContentProvider<HierarchicElementBase>(), - uiProvider); - - // Clear columns - dynTreeViewer.getControl().getColumns().clear(); - - // Name and comment column. - dynTreeViewer.addColumn("Name", 0, false); - dynTreeViewer.addColumn("Comment", 0, false); - - int columnIdx = 2; - for(ColumnHandle<IAnnotatedSpecification> handle : sortedColumnHandles) { - dynTreeViewer.addColumn(handle.getColumnName(), 0, false); - colIdxAnnotationMap.put(columnIdx++, handle); - } - - // Set minimum width for columns - dynTreeViewer.getControl().getColumns().forEach(column -> { - int MIN_COL_WIDTH = 100; - column.setMinWidth(MIN_COL_WIDTH); - }); - } - } - - /** - * Creates a default UI provider for {@link DynamicTreeViewer}s that present - * {@link IHierarchicElement}s. It also uses the {@link IModelElementHandlerService} for a nicer - * visual appearance. - * <p> - * Externalize this method into a class when subclassing seems appropriate. - * - * @return The constructed UI Provider. - */ - protected DynamicTreeTableUIProviderBase createContentUIProvider() { - return new DynamicTreeTableUIProviderBase() { - - /** {@inheritDoc} */ - @Override - public String getLabel(Object element, int col) { - switch(col) { - case 0: - return ((INamedCommentedElement)element).getName(); - case 1: - return ((INamedCommentedElement)element).getComment(); - default: - ColumnHandle<IAnnotatedSpecification> colHandle = - colIdxAnnotationMap.get(col); - IAnnotationValueProvider<IAnnotatedSpecification> valProvider = - getAnnotationValueProvider((IModelElement)element, - colHandle.getAnnotatedSpecificationType()); - try { - return valProvider - .getAnnotationValue(colHandle.getAnnotatedSpecification()) - .toString(); - } catch(Exception e) { - // For this demo class, it is expected that direct conversions to - // strings will fail for some annotations. Simple don't show anything in - // this case. - return ""; - } - } - } - - /** {@inheritDoc} */ - @Override - public Node getIconNode(Object element, int col) { - if(col != 0) { - return null; - } - - org.eclipse.swt.graphics.Image icon = - IModelElementHandlerService.getInstance().getIcon((EObject)element); - if(icon != null) { - Image fxImage = SWTFXUtils.toFXImage(icon.getImageData(), null); - return new ImageView(fxImage); - } - return null; - } - - /** {@inheritDoc} */ - @Override - public ContextMenu createContextMenu(Object element, int col) { - ContextMenu menu = new ContextMenu(); - return menu; - } - }; - } - - /** {@inheritDoc} */ - @Override - public String getFXMLLocation() { - return "SimpleAnnotationTableLayout.fxml"; - } -} diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/MarkerViewPart.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/MarkerViewPart.java index cbb650271b6877af205421b7cb11f930440a7ef9..2f7c81b423e83a3df72e2db966b79590ecdecb13 100644 --- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/MarkerViewPart.java +++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/MarkerViewPart.java @@ -41,7 +41,6 @@ import org.fortiss.tooling.kernel.extension.data.IConstraintViolation.ESeverity; import org.fortiss.tooling.kernel.extension.data.ITopLevelElement; import org.fortiss.tooling.kernel.service.IPersistencyService; import org.fortiss.tooling.kernel.ui.extension.IModelElementHandler; -import org.fortiss.tooling.kernel.ui.internal.MarkerService; import org.fortiss.tooling.kernel.ui.service.IMarkerService; import org.fortiss.tooling.kernel.ui.service.IModelElementHandlerService; @@ -50,6 +49,7 @@ import org.fortiss.tooling.kernel.ui.service.IModelElementHandlerService; * * @author hoelzl */ +@Deprecated public class MarkerViewPart extends ViewPart { /** Stores the toggle state of for each severity level. */ @@ -63,7 +63,7 @@ public class MarkerViewPart extends ViewPart { /** Constructor. */ public MarkerViewPart() { - ((MarkerService)IMarkerService.getInstance()).setMarkerViewPart(this); + // ((MarkerService)IMarkerService.getInstance()).setMarkerViewPart(this); toggleState.put(DEBUG, false); toggleState.put(INFO, false); toggleState.put(WARNING, true); diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/fx/MarkerViewFXContentProvider.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/fx/MarkerViewFXContentProvider.java deleted file mode 100644 index f0e88e0812deee93fc15dbebc5af46390b60e2ed..0000000000000000000000000000000000000000 --- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/fx/MarkerViewFXContentProvider.java +++ /dev/null @@ -1,105 +0,0 @@ -/*-------------------------------------------------------------------------+ -| Copyright 2020 fortiss GmbH | -| | -| Licensed under the Apache License, Version 2.0 (the "License"); | -| you may not use this file except in compliance with the License. | -| You may obtain a copy of the License at | -| | -| http://www.apache.org/licenses/LICENSE-2.0 | -| | -| Unless required by applicable law or agreed to in writing, software | -| distributed under the License is distributed on an "AS IS" BASIS, | -| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | -| See the License for the specific language governing permissions and | -| limitations under the License. | -+--------------------------------------------------------------------------*/ -package org.fortiss.tooling.kernel.ui.internal.views.fx; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -import org.eclipse.emf.ecore.EObject; -import org.eclipse.jface.viewers.ITreeContentProvider; -import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeContentProviderBase; -import org.fortiss.tooling.kernel.extension.data.IConstraintViolation; -import org.fortiss.tooling.kernel.extension.data.IConstraintViolation.ESeverity; -import org.fortiss.tooling.kernel.ui.service.IMarkerService; - -/** - * - * @author abid - */ -public class MarkerViewFXContentProvider extends DynamicTreeContentProviderBase<EObject> - implements ITreeContentProvider { - - private MarkerViewFXContentProvider errorViewFXViewPart; - - /** - * @param errorViewFXViewPart - */ - public MarkerViewFXContentProvider(MarkerViewFXContentProvider errorViewFXViewPart) { - this.errorViewFXViewPart = errorViewFXViewPart; - } - - /** - * - */ - public MarkerViewFXContentProvider() { - // TODO Auto-generated constructor stub - } - - /** {@inheritDoc} */ - @SuppressWarnings("unchecked") - @Override - protected Collection<? extends EObject> getChildren(EObject parent) { - ArrayList<EObject> result = new ArrayList<EObject>(); - if(parent instanceof IConstraintViolation) { - IConstraintViolation violation = (IConstraintViolation)parent; - result.addAll((Collection<? extends EObject>)violation); - } - System.out.println(result); - return result; - } - - /** {@inheritDoc} */ - @Override - public Object[] getElements(Object inputElement) { - List<ESeverity> result = new ArrayList<ESeverity>(); - for(ESeverity sev : ESeverity.values()) { - if(sev != ESeverity.lowest() /** && errorViewFXViewPart.getToggleState(sev) */ - ) { - result.add(sev); - } - } - return result.toArray(); - } - - /** {@inheritDoc} */ - @Override - public Object[] getChildren(Object parentElement) { - - if(parentElement instanceof ESeverity) { - return IMarkerService.getInstance() - .getAllViolationsWithSeverity((ESeverity)parentElement).toArray(); - } - return null; - } - - /** {@inheritDoc} */ - @Override - public Object getParent(Object element) { - if(element instanceof IConstraintViolation<?>) { - return ((IConstraintViolation<?>)element).getSeverity(); - } - return null; - } - - /** {@inheritDoc} */ - @Override - public boolean hasChildren(Object element) { - Object[] objs = getChildren(element); - return objs != null && objs.length > 0; - } - -} diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/fx/MarkerViewFXEditor.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/fx/MarkerViewFXEditor.java deleted file mode 100644 index 4b5a82aca0b6b1b65f0589076f597087485f5727..0000000000000000000000000000000000000000 --- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/fx/MarkerViewFXEditor.java +++ /dev/null @@ -1,87 +0,0 @@ -/*-------------------------------------------------------------------------+ -| Copyright 2020 fortiss GmbH | -| | -| Licensed under the Apache License, Version 2.0 (the "License"); | -| you may not use this file except in compliance with the License. | -| You may obtain a copy of the License at | -| | -| http://www.apache.org/licenses/LICENSE-2.0 | -| | -| Unless required by applicable law or agreed to in writing, software | -| distributed under the License is distributed on an "AS IS" BASIS, | -| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | -| See the License for the specific language governing permissions and | -| limitations under the License. | -+--------------------------------------------------------------------------*/ -package org.fortiss.tooling.kernel.ui.internal.views.fx; - -import java.util.List; - -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.validation.internal.modeled.model.validation.Constraint; -import org.eclipse.jface.viewers.ISelectionProvider; -import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeContentProviderBase; -import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTableUIProviderBase; -import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTableViewer; -import org.fortiss.tooling.kernel.ui.extension.base.FXEditorBase; -import org.fortiss.tooling.kernel.utils.KernelServiceBasedModelListenerBase; - -import javafx.scene.Parent; -import javafx.scene.control.TextField; -import javafx.scene.layout.BorderPane; - -/** - * - * @author abid - */ -public class MarkerViewFXEditor extends FXEditorBase<Constraint> implements ISelectionProvider { - /** The tree-table viewer. */ - private DynamicTreeTableViewer<EObject> treeTableViewer; - /** The filter text field if filtering is enabled in content provider. */ - private TextField filterWidget; - - /** The model listener. */ - private KernelServiceBasedModelListenerBase<Constraint> modelListener; - - /** {@inheritDoc} */ - @Override - protected Parent createSceneRoot() { - // TODO Auto-generated method stub - Constraint dd = getEditedObject(); - modelListener = new KernelServiceBasedModelListenerBase<Constraint>(dd) { - /** {@inheritDoc} */ - @Override - public void updateComplete(List<Notification> notifications) { - treeTableViewer.update(); - } - }; - modelListener.register(); - DynamicTreeContentProviderBase<EObject> contentProvider = new MarkerViewFXContentProvider(); - DynamicTreeTableUIProviderBase<EObject> uiProvider = new MarkerViewFXUIProvider(this); - BorderPane pane = new BorderPane(); - - filterWidget = new TextField(); - filterWidget.textProperty().addListener((obs, oVal, nVal) -> { - contentProvider.setFilterExpression(nVal); - treeTableViewer.update(); - }); - - treeTableViewer = new DynamicTreeTableViewer<>(dd, true, 3, contentProvider, uiProvider); - treeTableViewer.addColumn("Name", 160); - treeTableViewer.addColumn("Type", 160); - treeTableViewer.addColumn("Comment", 300); - treeTableViewer.addColumn("Comment", 300); - - pane.setTop(filterWidget); - pane.setCenter(treeTableViewer.getControl()); - return pane; - } - - /** {@inheritDoc} */ - @Override - public void dispose() { - modelListener.unregister(); - super.dispose(); - } -} diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/service/IMarkerService.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/service/IMarkerService.java index d433e838e387dd2fe61b8dea7395ebb7203ae39b..f5421190147c961cfdf8bdee8c930cb1717a7592 100644 --- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/service/IMarkerService.java +++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/service/IMarkerService.java @@ -25,6 +25,7 @@ import org.fortiss.tooling.kernel.extension.data.IConstraintViolation.ESeverity; import org.fortiss.tooling.kernel.extension.data.ITopLevelElement; import org.fortiss.tooling.kernel.service.IConstraintCheckerService; import org.fortiss.tooling.kernel.ui.internal.MarkerService; +import org.fortiss.tooling.kernel.ui.internal.views.ErrorViewFX.ErrorViewFXViewPart; /** * The marker service manages model element specific markers. It uses the @@ -36,7 +37,7 @@ import org.fortiss.tooling.kernel.ui.internal.MarkerService; public interface IMarkerService { /** Returns view id of the marker view. */ - public static final String MARKER_VIEW = "org.fortiss.tooling.kernel.model.marker"; + public static final String MARKER_VIEW = ErrorViewFXViewPart.ID; /** Returns the service instance. */ public static IMarkerService getInstance() {