01: package org.drools.eclipse.rulebuilder.ui;
02:
03: import org.drools.eclipse.DroolsEclipsePlugin;
04: import org.eclipse.jface.resource.ImageDescriptor;
05: import org.eclipse.swt.SWT;
06: import org.eclipse.swt.widgets.Composite;
07: import org.eclipse.swt.widgets.Display;
08: import org.eclipse.swt.widgets.MessageBox;
09: import org.eclipse.ui.forms.events.HyperlinkEvent;
10: import org.eclipse.ui.forms.events.IHyperlinkListener;
11: import org.eclipse.ui.forms.widgets.FormToolkit;
12: import org.eclipse.ui.forms.widgets.ImageHyperlink;
13:
14: public abstract class Widget {
15:
16: final protected Composite parent;
17:
18: final protected FormToolkit toolkit;
19:
20: final protected RuleModeller modeller;
21:
22: final protected int index;
23:
24: public Widget(Composite parent, FormToolkit toolkit,
25: RuleModeller modeller, int index) {
26: this .parent = parent;
27: this .toolkit = toolkit;
28: this .modeller = modeller;
29: this .index = index;
30: }
31:
32: public ImageHyperlink addImage(Composite parent, String fileName) {
33: ImageHyperlink imageHyperlink = toolkit.createImageHyperlink(
34: parent, 0);
35: ImageDescriptor imageDescriptor = DroolsEclipsePlugin
36: .getImageDescriptor(fileName);
37: imageHyperlink.setImage(imageDescriptor.createImage());
38: return imageHyperlink;
39: }
40:
41: protected void addDeleteRHSAction() {
42: ImageHyperlink delWholeLink = addImage(parent,
43: "icons/delete_obj.gif");
44: delWholeLink.addHyperlinkListener(new IHyperlinkListener() {
45: public void linkActivated(HyperlinkEvent e) {
46: MessageBox dialog = new MessageBox(Display.getCurrent()
47: .getActiveShell(), SWT.YES | SWT.NO
48: | SWT.ICON_WARNING);
49: dialog.setMessage("Remove this action?");
50: dialog.setText("Remove this action?");
51: if (dialog.open() == SWT.YES) {
52: getModeller().getModel().removeRhsItem(index);
53: getModeller().setDirty(true);
54: getModeller().reloadRhs();
55: }
56: }
57:
58: public void linkEntered(HyperlinkEvent e) {
59: }
60:
61: public void linkExited(HyperlinkEvent e) {
62: }
63: });
64: delWholeLink.setToolTipText("Remove this action.");
65: }
66:
67: protected void showMessage(String msg) {
68: MessageBox dialog = new MessageBox(Display.getDefault()
69: .getActiveShell(), SWT.OK | SWT.ICON_INFORMATION);
70: dialog.setMessage(msg);
71: dialog.setText("Information");
72: dialog.open();
73: }
74:
75: protected RuleModeller getModeller() {
76: return modeller;
77: }
78:
79: }
|