Skip to content
Snippets Groups Projects
Commit 30c7b8a6 authored by Florian Hölzl's avatar Florian Hölzl
Browse files

added toggle buttons for severity levels to marker view.

refs 307
parent 0d889dce
No related branches found
No related tags found
No related merge requests found
......@@ -23,7 +23,15 @@ import static org.fortiss.tooling.kernel.extension.data.IConstraintViolation.ESe
import static org.fortiss.tooling.kernel.extension.data.IConstraintViolation.ESeverity.INFO;
import static org.fortiss.tooling.kernel.extension.data.IConstraintViolation.ESeverity.WARNING;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
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.ITreeContentProvider;
import org.eclipse.jface.viewers.Viewer;
......@@ -46,16 +54,27 @@ import org.fortiss.tooling.kernel.ui.service.IModelElementHandlerService;
* @author hoelzl
* @author $Author$
* @version $Rev$
* @ConQAT.Rating YELLOW Hash: 360983B847696BC72FE50E894CCAC89A
* @ConQAT.Rating YELLOW Hash: FEA75C43E09572D37F628C9ACC0395F3
*/
public class MarkerViewPart extends ViewPart {
/** Stores the toggle state of for each severity level. */
private Map<ESeverity, Boolean> toggleState = new HashMap<ESeverity, Boolean>();
/** GUI builder viewer instance. */
private MarkerViewerGUI gui;
/** Toggle expert severity filter actions. */
private Action[] toggleSeverityFilterAction = new Action[5];
/** Constructor. */
public MarkerViewPart() {
((MarkerService) IMarkerService.INSTANCE).setMarkerViewPart(this);
toggleState.put(DEBUG, false);
toggleState.put(INFO, false);
toggleState.put(WARNING, true);
toggleState.put(ERROR, true);
toggleState.put(FATAL, false);
}
/** {@inheritDoc} */
......@@ -93,7 +112,13 @@ public class MarkerViewPart extends ViewPart {
@Override
public Object[] getElements(Object inputElement) {
return new Object[] { FATAL, ERROR, WARNING, INFO, DEBUG };
List<ESeverity> result = new ArrayList<ESeverity>(5);
for (ESeverity sev : ESeverity.values()) {
if (toggleState.get(sev)) {
result.add(sev);
}
}
return result.toArray();
}
@Override
......@@ -163,6 +188,8 @@ public class MarkerViewPart extends ViewPart {
});
gui.getTreeViewer().setInput(IMarkerService.INSTANCE);
createToggleActions();
}
/** {@inheritDoc} */
......@@ -175,4 +202,44 @@ public class MarkerViewPart extends ViewPart {
public void refresh() {
gui.getTreeViewer().refresh();
}
/** Creates the toggle actions. */
private void createToggleActions() {
toggleSeverityFilterAction[0] = new SeverityFilterAction("D", DEBUG);
toggleSeverityFilterAction[1] = new SeverityFilterAction("I", INFO);
toggleSeverityFilterAction[2] = new SeverityFilterAction("W", WARNING);
toggleSeverityFilterAction[3] = new SeverityFilterAction("E", ERROR);
toggleSeverityFilterAction[4] = new SeverityFilterAction("F", FATAL);
IToolBarManager toolBarManager = getViewSite().getActionBars()
.getToolBarManager();
Separator additionsSeperator = new Separator("additions");
additionsSeperator.setVisible(true);
toolBarManager.add(additionsSeperator);
for (int i = 0; i < 5; 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, ESeverity severity) {
super(name, SWT.TOGGLE);
this.severity = severity;
setChecked(toggleState.get(severity));
}
/** {@inheritDoc} */
@Override
public void run() {
// invert state
toggleState.put(severity, !toggleState.get(severity));
refresh();
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment