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 8d4f727c1dcf0eaa951ae6beb65f1f94f5d24b5f..098a2f628bccc91a911b23fdfde0d8d339f830ff 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.ErrorViewFX.ErrorViewFXViewPart; +import org.fortiss.tooling.kernel.ui.internal.views.ErrorViewFX.ErrorViewFXLayoutController; import org.fortiss.tooling.kernel.ui.service.IMarkerService; /** @@ -77,8 +77,8 @@ public class MarkerService implements IMarkerService, IPersistencyServiceListene private final UIJob updateUI = new UIJob("Update Model Decorators") { @Override public IStatus runInUIThread(IProgressMonitor monitor) { - if(markerView != null) { - markerView.refresh(); + if(markerController != null) { + markerController.refresh(); } return Status.OK_STATUS; } @@ -91,7 +91,7 @@ public class MarkerService implements IMarkerService, IPersistencyServiceListene private final List<ITopLevelElement> invalidElements = new LinkedList<ITopLevelElement>(); /** Stores the marker view. */ - private ErrorViewFXViewPart markerView; + private ErrorViewFXLayoutController markerController; /** Stores the constraint checking job. */ private final Job constraintCheckerJob = new Job("Model Constraint Checker Job") { @@ -139,8 +139,8 @@ public class MarkerService implements IMarkerService, IPersistencyServiceListene } /** Sets the current marker view. */ - public void setMarkerViewPart(ErrorViewFXViewPart view) { - this.markerView = view; + public void setMarkerViewPart(ErrorViewFXLayoutController errorViewFXLayoutController) { + this.markerController = errorViewFXLayoutController; } /** {@inheritDoc} */ 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 2d36daaff299924e9b8e079b99d2155b21a579b3..9a0fd322ad7d4a4965b6f977198c40eab6df9590 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,9 +15,7 @@ +--------------------------------------------------------------------------*/ package org.fortiss.tooling.kernel.ui.internal.views.ErrorViewFX; -import java.util.ArrayList; import java.util.HashMap; -import java.util.List; import java.util.Map; import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeContentProviderBase; @@ -25,6 +23,8 @@ import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTab 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 org.fortiss.tooling.kernel.ui.internal.MarkerService; +import org.fortiss.tooling.kernel.ui.service.IMarkerService; import javafx.fxml.FXML; import javafx.scene.Node; @@ -32,16 +32,10 @@ import javafx.scene.control.CheckBox; import javafx.scene.layout.BorderPane; /** - * - * * Controller class for the "marker view". References the FXML layout and contains all control - * * logic. * - * - * * @author abid - * */ public class ErrorViewFXLayoutController extends CompositeFXControllerBase<Node, Node> { @@ -65,22 +59,16 @@ public class ErrorViewFXLayoutController extends CompositeFXControllerBase<Node, @FXML private BorderPane pane; - @SuppressWarnings("javadoc") - int btnOption = 0; - /** Toggle State */ - @SuppressWarnings("unused") private Map<ESeverity, Boolean> toggleState = new HashMap<ESeverity, Boolean>(); + /** Tree table */ + private DynamicTreeTableViewer<Object> treeTable; - /** */ - List<ESeverity> SevrList = new ArrayList<ESeverity>(); - - /** - * @param toggleState - */ + /** Constructor. */ @SuppressWarnings("unchecked") public ErrorViewFXLayoutController(Map<ESeverity, Boolean> toggleState) { this.toggleState = toggleState; + ((MarkerService)IMarkerService.getInstance()).setMarkerViewPart(this); } /** Called when debug checkbox is pushed. */ @@ -88,9 +76,9 @@ public class ErrorViewFXLayoutController extends CompositeFXControllerBase<Node, if(!debugBtn.isSelected()) { toggleState.put(ESeverity.DEBUG, true); } else { - toggleState.remove(ESeverity.DEBUG); + toggleState.put(ESeverity.DEBUG, false); } - initialize(); + refresh(); } /** Called when info check-box is pushed. */ @@ -98,20 +86,19 @@ public class ErrorViewFXLayoutController extends CompositeFXControllerBase<Node, if(infoBtn.isSelected()) { toggleState.put(ESeverity.INFO, true); } else { - toggleState.remove(ESeverity.INFO); + toggleState.put(ESeverity.INFO, false); } - initialize(); + refresh(); } /** Called when warning check-box is pushed. */ public void onWarningBtn() { - if(warningBtn.isSelected()) { toggleState.put(ESeverity.WARNING, true); } else { - toggleState.remove(ESeverity.WARNING); + toggleState.put(ESeverity.WARNING, false); } - initialize(); + refresh(); } /** Called when error check-box is pushed. */ @@ -119,21 +106,19 @@ public class ErrorViewFXLayoutController extends CompositeFXControllerBase<Node, if(errorBtn.isSelected()) { toggleState.put(ESeverity.ERROR, true); } else { - toggleState.remove(ESeverity.ERROR); + toggleState.put(ESeverity.ERROR, false); } - initialize(); - + refresh(); } /** Called when fatal check-box is pushed. */ public void onFatalBtn() { if(fatalBtn.isSelected()) { toggleState.put(ESeverity.FATAL, true); + } else { + toggleState.put(ESeverity.FATAL, false); } - if(fatalBtn.isPressed()) { - toggleState.remove(ESeverity.FATAL); - } - initialize(); + refresh(); } /** {@inheritDoc} */ @@ -142,16 +127,18 @@ public class ErrorViewFXLayoutController extends CompositeFXControllerBase<Node, return "ErrorViewFXLayout.fxml"; } + /** Refreshes the tree table. */ + public void refresh() { + treeTable.update(); + } + /** {@inheritDoc} */ @Override public void initialize() { - DynamicTreeContentProviderBase<Object> contentProvider = new MarkerViewFXContentProvider(); - DynamicTreeTableUIProviderBase<Object> uiProvider = new MarkerViewFXUIProvider(this); - SevrList.clear(); - SevrList.addAll(toggleState.keySet()); - DynamicTreeTableViewer<Object> treeTable = - new DynamicTreeTableViewer<Object>(SevrList, false, 2, contentProvider, uiProvider); + DynamicTreeTableUIProviderBase<Object> uiProvider = new MarkerViewFXUIProvider(); + treeTable = new DynamicTreeTableViewer<Object>(toggleState, false, 2, contentProvider, + uiProvider); treeTable.addColumn("Severity", 80); treeTable.addColumn("Element", 80); treeTable.addColumn("Explanation", 80); 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 d5f078f2193246a4d69c118f23a3541f62dc0055..d3d31dd1db4b04573f268103dadd695e5d1bd09e 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 @@ -20,8 +20,6 @@ import java.util.Map; import org.fortiss.tooling.common.ui.javafx.AF3FXViewPart; import org.fortiss.tooling.kernel.extension.data.IConstraintViolation.ESeverity; -import org.fortiss.tooling.kernel.ui.internal.MarkerService; -import org.fortiss.tooling.kernel.ui.service.IMarkerService; /** * @@ -31,7 +29,7 @@ import org.fortiss.tooling.kernel.ui.service.IMarkerService; * * Wrapper for the {@link ErrorViewFXViewPart}. This class can be referenced in the * - * {@code plugins.xml} file to register the view. + * {@code plugin.xml} file to register the view. * * * @@ -51,16 +49,10 @@ public class ErrorViewFXViewPart extends AF3FXViewPart { public ErrorViewFXViewPart() throws Exception { super(new ErrorViewFXLayoutController(toggleState), null); - ((MarkerService)IMarkerService.getInstance()).setMarkerViewPart(this); - } - - /** Called when there are error marker updates. */ - public void refresh() { } /** Returns toggleState. */ /* package */Boolean getToggleState(ESeverity sev) { - return toggleState.get(sev); } } diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/MarkerViewFXContentProvider.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/MarkerViewFXContentProvider.java index 4465b0b29e232bc6cfac6c76d6f3741be231bdb3..200539a330a7b55dd178610d285a8f4377114e44 100644 --- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/MarkerViewFXContentProvider.java +++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/MarkerViewFXContentProvider.java @@ -17,7 +17,8 @@ package org.fortiss.tooling.kernel.ui.internal.views.ErrorViewFX; import java.util.ArrayList; import java.util.Collection; -import java.util.List; +import java.util.Map; +import java.util.Map.Entry; import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeContentProviderBase; import org.fortiss.tooling.kernel.extension.data.IConstraintViolation; @@ -30,24 +31,23 @@ import org.fortiss.tooling.kernel.ui.service.IMarkerService; */ public class MarkerViewFXContentProvider extends DynamicTreeContentProviderBase<Object> { - private ErrorViewFXViewPart markerViewFXViewPart; - /** {@inheritDoc} */ + @SuppressWarnings("unchecked") @Override public Collection<? extends Object> getChildren(Object parent) { - List<ESeverity> servList = new ArrayList<ESeverity>(); - Collection<IConstraintViolation> violation_list = new ArrayList<IConstraintViolation>(); - - if(parent instanceof List) { - servList = (List)parent; - for(int i = 0; i < servList.size(); i++) { - violation_list.addAll(IMarkerService.getInstance() - .getAllViolationsWithSeverity((ESeverity)servList.get(i))); + Map<ESeverity, Boolean> servList; + Collection<IConstraintViolation<?>> violation_list = + new ArrayList<IConstraintViolation<?>>(); + if(parent instanceof Map<?, ?>) { + servList = (Map<ESeverity, Boolean>)parent; + for(Entry<ESeverity, Boolean> e : servList.entrySet()) { + if(e.getValue()) { + violation_list.addAll( + IMarkerService.getInstance().getAllViolationsWithSeverity(e.getKey())); + } } return violation_list; } - return null; - } } diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/MarkerViewFXUIProvider.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/MarkerViewFXUIProvider.java index 7c8fdec172903965260b1bd0bca8cdcdf2eba2e3..306294dc150db4555094139d9eaf44d151630c36 100644 --- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/MarkerViewFXUIProvider.java +++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/MarkerViewFXUIProvider.java @@ -33,16 +33,6 @@ import javafx.scene.control.ContextMenu; */ public class MarkerViewFXUIProvider extends DynamicTreeTableUIProviderBase<Object> { - ErrorViewFXLayoutController errorViewFXLayoutController; - - /** - * @param errorViewFXLayoutController - */ - public MarkerViewFXUIProvider(ErrorViewFXLayoutController errorViewFXLayoutController) { - // TODO Auto-generated constructor stub - this.errorViewFXLayoutController = errorViewFXLayoutController; - } - /** {@inheritDoc} */ @Override /** {@inheritDoc} */ @@ -72,10 +62,9 @@ public class MarkerViewFXUIProvider extends DynamicTreeTableUIProviderBase<Objec if(element instanceof IConstraintViolation) { switch(col) { case 0: // Severity Column - return ((IConstraintViolation)element).getSeverity().toString(); + return ((IConstraintViolation<?>)element).getSeverity().toString(); case 1: // Element Column - IConstraintViolation<? extends EObject> violation = - (IConstraintViolation<? extends EObject>)element; + IConstraintViolation<?> violation = (IConstraintViolation<?>)element; IModelElementHandlerService hs = IModelElementHandlerService.getInstance(); IModelElementHandler<EObject> handler = hs.getModelElementHandler(violation.getSource()); @@ -83,10 +72,9 @@ public class MarkerViewFXUIProvider extends DynamicTreeTableUIProviderBase<Objec return handler.getName(violation.getSource()); } case 2: // Explanation Column - return ((IConstraintViolation)element).getExplanation(); + return ((IConstraintViolation<?>)element).getExplanation(); case 3: // Project Column - IConstraintViolation<? extends EObject> violation_prj = - (IConstraintViolation<? extends EObject>)element; + IConstraintViolation<?> violation_prj = (IConstraintViolation<?>)element; IPersistencyService ps = IPersistencyService.getInstance(); ITopLevelElement topElement = ps.getTopLevelElementFor(violation_prj.getSource());