1 package org.simantics.modeling.ui.diagram.monitor;
3 import org.eclipse.jface.layout.GridDataFactory;
4 import org.eclipse.jface.resource.ColorDescriptor;
5 import org.eclipse.swt.SWT;
6 import org.eclipse.swt.graphics.Color;
7 import org.eclipse.swt.graphics.RGB;
8 import org.eclipse.swt.widgets.Composite;
9 import org.eclipse.swt.widgets.Display;
10 import org.eclipse.ui.IWorkbenchSite;
11 import org.simantics.browsing.ui.swt.widgets.DefaultColorProvider;
12 import org.simantics.browsing.ui.swt.widgets.TrackedText;
13 import org.simantics.browsing.ui.swt.widgets.impl.WidgetSupport;
14 import org.simantics.db.management.ISessionContext;
15 import org.simantics.selectionview.ConfigurationComposite;
17 public class MonitorExpressionComposite extends ConfigurationComposite {
19 public void create(final Composite body, IWorkbenchSite site, final ISessionContext context, final WidgetSupport support) {
21 final Display display = body.getDisplay();
23 body.setBackground(display.getSystemColor(SWT.COLOR_WHITE));
25 // Composite headerComposite = new Composite(body, 0);
26 // headerComposite.setBackground(display.getSystemColor(SWT.COLOR_BLACK));
27 // GridDataFactory.fillDefaults().span(2, 1).grab(true, false).applyTo(headerComposite);
28 // GridLayoutFactory.fillDefaults().equalWidth(false).numColumns(1).extendedMargins(2,2,2,2).applyTo(headerComposite);
30 // final Composite headerComposite2 = new Composite(headerComposite, 0);
31 // headerComposite2.setBackground(display.getSystemColor(SWT.COLOR_WHITE));
32 // GridDataFactory.fillDefaults().span(2, 1).grab(true, false).applyTo(headerComposite2);
33 // GridLayoutFactory.fillDefaults().equalWidth(false).numColumns(2).extendedMargins(3,3,3,3).applyTo(headerComposite2);
35 // final Label header = new Label(headerComposite2, support, 0);
36 // header.setText("Monitor");
37 // header.setFont(font);
38 // header.setBackground(display.getSystemColor(SWT.COLOR_WHITE));
39 // GridDataFactory.fillDefaults().grab(true, false).span(2, 1).align(SWT.CENTER, SWT.CENTER).applyTo(header.getWidget());
41 // Composite buttonComposite = new Composite(body, SWT.NONE);
42 // buttonComposite.setBackground(display.getSystemColor(SWT.COLOR_WHITE));
43 // GridDataFactory.fillDefaults().span(2, 1).grab(true, false).applyTo(buttonComposite);
44 // GridLayoutFactory.fillDefaults().equalWidth(false).numColumns(3).extendedMargins(5,5,5,5).applyTo(buttonComposite);
46 // Label templateHeader = new Label(buttonComposite, support, 0);
47 // templateHeader.setText("Template");
48 // templateHeader.setFont(smallFont);
49 // templateHeader.setBackground(display.getSystemColor(SWT.COLOR_WHITE));
50 // GridDataFactory.fillDefaults().grab(false, false).span(1, 1).align(SWT.LEFT, SWT.CENTER).applyTo(templateHeader.getWidget());
52 // Combo templateCombo = new Combo(buttonComposite, support, SWT.NONE | SWT.READ_ONLY);
53 // templateCombo.setItemFactory(new AvailableTemplateFactory());
54 // templateCombo.setSelectionFactory(new CurrentTemplateFactory());
55 // templateCombo.addModifyListener(new TemplateModifier());
56 // GridDataFactory.fillDefaults().grab(true, false).applyTo(templateCombo.getWidget());
58 // Button resetButton = new Button(buttonComposite, support, SWT.NONE | SWT.READ_ONLY);
59 // resetButton.setText("Reset Local Changes");
60 // resetButton.addSelectionListener(new SelectionListenerImpl<Resource>(context) {
63 // public void apply(WriteGraph graph, Resource monitor) throws DatabaseException {
65 // Layer0 L0 = Layer0.getInstance(graph);
66 // DiagramResource DIA = DiagramResource.getInstance(graph);
67 // if(graph.hasStatement(monitor, DIA.HasFont)) graph.deny(monitor, DIA.HasFont);
68 // if(graph.hasStatement(monitor, DIA.HasFormatter)) graph.deny(monitor, DIA.HasFormatter);
69 // if(graph.hasStatement(monitor, DIA.HasColor)) graph.deny(monitor, DIA.HasColor);
70 // if(graph.hasStatement(monitor, L0X.HasExpression)) graph.deny(monitor, L0X.HasExpression);
76 // GridDataFactory.fillDefaults().grab(false, false).applyTo(resetButton.getWidget());
78 // Label fontHeader = new Label(buttonComposite, support, 0);
79 // fontHeader.setText("Font Family");
80 // fontHeader.setFont(smallFont);
81 // fontHeader.setBackground(display.getSystemColor(SWT.COLOR_WHITE));
82 // GridDataFactory.fillDefaults().grab(false, false).span(1, 1).align(SWT.LEFT, SWT.CENTER).applyTo(fontHeader.getWidget());
84 // Combo fontCombo = new Combo(buttonComposite, support, SWT.NONE | SWT.READ_ONLY);
85 // fontCombo.setItemFactory2(new AvailableFontFactory());
86 // fontCombo.setSelectionFactory(new CurrentFontFactory());
87 // fontCombo.addModifyListener(new FontModifier());
88 // GridDataFactory.fillDefaults().grab(true, false).span(2,1).applyTo(fontCombo.getWidget());
90 // Label sizeHeader = new Label(buttonComposite, support, 0);
91 // sizeHeader.setText("Font Size");
92 // sizeHeader.setFont(smallFont);
93 // sizeHeader.setBackground(display.getSystemColor(SWT.COLOR_WHITE));
94 // GridDataFactory.fillDefaults().grab(false, false).span(1, 1).align(SWT.LEFT, SWT.CENTER).applyTo(sizeHeader.getWidget());
96 // Combo sizeCombo = new Combo(buttonComposite, support, SWT.NONE | SWT.READ_ONLY);
97 // sizeCombo.setItemFactory2(new AvailableFontSizeFactory());
98 // sizeCombo.setSelectionFactory(new CurrentFontSizeFactory());
99 // sizeCombo.addModifyListener(new FontSizeModifier());
100 // GridDataFactory.fillDefaults().grab(false, false).span(2,1).minSize(50, 0).applyTo(sizeCombo.getWidget());
102 // Label formatterHeader = new Label(buttonComposite, support, 0);
103 // formatterHeader.setText("Formatting");
104 // formatterHeader.setFont(smallFont);
105 // formatterHeader.setBackground(display.getSystemColor(SWT.COLOR_WHITE));
106 // GridDataFactory.fillDefaults().grab(false, false).span(1, 1).align(SWT.LEFT, SWT.CENTER).applyTo(formatterHeader.getWidget());
108 // Combo formatCombo = new Combo(buttonComposite, support, SWT.NONE | SWT.READ_ONLY);
109 // formatCombo.setItemFactory(new AvailableFormatFactory());
110 // formatCombo.setSelectionFactory(new CurrentFormatFactory());
111 // formatCombo.addModifyListener(new FormatModifier());
112 // GridDataFactory.fillDefaults().grab(true, false).span(2,1).applyTo(formatCombo.getWidget());
114 // Label expressionHeader = new Label(body, support, 0);
115 // expressionHeader.setText("Expression");
116 // expressionHeader.setFont(font);
117 // expressionHeader.setBackground(display.getSystemColor(SWT.COLOR_WHITE));
118 // GridDataFactory.fillDefaults().grab(true, false).span(2, 1).align(SWT.CENTER, SWT.CENTER).applyTo(expressionHeader.getWidget());
120 TrackedText expression = new TrackedText(body, support, SWT.MULTI | SWT.BORDER);
121 expression.setColorProvider(new DefaultColorProvider(expression.getResourceManager()) {
123 private final ColorDescriptor inactiveColor = ColorDescriptor.createFrom(new RGB(220, 220, 255));
126 public Color getInactiveBackground() {
127 return resourceManager.createColor(inactiveColor);
131 expression.setTextFactory(new CurrentExpressionFactory());
132 expression.addModifyListener(new ExpressionModifier());
133 GridDataFactory.fillDefaults().grab(true, true).applyTo(expression.getWidget());