use of de.janrufmonitor.framework.rules.IRule in project janrufmonitor by tbrandt77.
the class RuleAssistent method openRuleWizard.
private void openRuleWizard(IRule rule) {
Display display = DisplayManager.getDefaultDisplay();
Shell shell = new Shell(display);
WizardDialog.setDefaultImage(SWTImageManager.getInstance(this.getRuntime()).get(IJAMConst.IMAGE_KEY_PIM_ICON));
RuleWizard ruleWiz = new RuleWizard(rule);
WizardDialog dlg = new WizardDialog(shell, ruleWiz);
dlg.open();
if (dlg.getReturnCode() == WizardDialog.OK) {
IRule newRule = ruleWiz.getResult();
if (rule != null)
this.m_rules.remove(rule);
if (newRule != null)
this.m_rules.add(newRule);
}
cl.setInput(this.m_rules);
}
use of de.janrufmonitor.framework.rules.IRule in project janrufmonitor by tbrandt77.
the class RuleAssistent method performOk.
public boolean performOk() {
PIMRuntime.getInstance().getConfigManagerFactory().getConfigManager().removeProperties(RULE_NAMESPACE);
IRule rule = null;
String key = null;
for (int i = 0; i < this.m_rules.size(); i++) {
rule = (IRule) this.m_rules.get(i);
key = this.getRuleKey(rule);
this.getPreferenceStore().setValue(this.RULE_NAMESPACE + SEPARATOR + key + "_rule", rule.toString());
}
return super.performOk();
}
use of de.janrufmonitor.framework.rules.IRule in project janrufmonitor by tbrandt77.
the class RuleAssistent method createContents.
protected Control createContents(Composite parent) {
this.setTitle(this.m_i18n.getString(this.getNamespace(), "title", "label", this.m_language));
this.noDefaultAndApplyButton();
Composite c = new Composite(parent, SWT.NONE);
c.setLayout(new GridLayout(1, false));
Label l = new Label(c, SWT.NONE);
l.setText(this.m_i18n.getString(this.NAMESPACE, "available", "label", this.m_language));
cl = CheckboxTableViewer.newCheckList(c, SWT.CHECK | SWT.BORDER | SWT.V_SCROLL);
cl.setLabelProvider(new RuleLabelProvider());
cl.setContentProvider(new RuleContentProvider());
List rules = this.getRules();
cl.setInput(rules);
GridData gd = new GridData(GridData.FILL_HORIZONTAL);
gd.heightHint = 100;
cl.getTable().setLayoutData(gd);
IRule rule = null;
for (int i = 0; i < rules.size(); i++) {
rule = (IRule) rules.get(i);
cl.setChecked(rule, rule.isActive());
}
cl.addCheckStateListener(new ICheckStateListener() {
public void checkStateChanged(CheckStateChangedEvent event) {
boolean checked = event.getChecked();
IRule rule = (IRule) event.getElement();
rule.setActive(checked);
}
});
Composite buttonGroup = new Composite(c, SWT.NONE);
buttonGroup.setLayout(new GridLayout(4, false));
Button newButton = new Button(buttonGroup, SWT.PUSH);
newButton.setText(this.m_i18n.getString(this.NAMESPACE, "new", "label", this.m_language));
newButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
openRuleWizard(null);
IRule rule = null;
List rules = getRules();
for (int i = 0; i < rules.size(); i++) {
rule = (IRule) rules.get(i);
cl.setChecked(rule, rule.isActive());
}
}
});
final Button changeButton = new Button(buttonGroup, SWT.PUSH);
changeButton.setText(this.m_i18n.getString(this.NAMESPACE, "change", "label", this.m_language));
changeButton.setEnabled(false);
changeButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
StructuredSelection s = (StructuredSelection) cl.getSelection();
if (!s.isEmpty()) {
IRule rule = (IRule) s.getFirstElement();
openRuleWizard(rule);
IRule r = null;
List rules = getRules();
for (int i = 0; i < rules.size(); i++) {
r = (IRule) rules.get(i);
cl.setChecked(r, r.isActive());
}
}
}
});
final Button copyButton = new Button(buttonGroup, SWT.PUSH);
copyButton.setText(this.m_i18n.getString(this.NAMESPACE, "copy", "label", this.m_language));
copyButton.setEnabled(false);
copyButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
StructuredSelection s = (StructuredSelection) cl.getSelection();
if (!s.isEmpty()) {
if (MessageDialog.openConfirm(e.display.getActiveShell(), m_i18n.getString(NAMESPACE, "copytitle", "label", m_language), m_i18n.getString(NAMESPACE, "copyconfirmation", "label", m_language))) {
List ruleList = s.toList();
IRule r = null;
IRule copiedRule = null;
for (int i = 0; i < ruleList.size(); i++) {
r = (IRule) ruleList.get(i);
copiedRule = getRuntime().getRuleEngine().createRule(r.toString());
copiedRule.setName(m_i18n.getString(NAMESPACE, "copyof", "label", m_language) + r.getName());
m_rules.add(copiedRule);
cl.add(copiedRule);
cl.setChecked(copiedRule, copiedRule.isActive());
}
cl.refresh();
}
}
}
});
final Button deleteButton = new Button(buttonGroup, SWT.PUSH);
deleteButton.setText(this.m_i18n.getString(this.NAMESPACE, "delete", "label", this.m_language));
deleteButton.setEnabled(false);
deleteButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
StructuredSelection s = (StructuredSelection) cl.getSelection();
if (!s.isEmpty()) {
if (MessageDialog.openConfirm(e.display.getActiveShell(), m_i18n.getString(NAMESPACE, "deletetitle", "label", m_language), m_i18n.getString(NAMESPACE, "deleteconfirmation", "label", m_language))) {
Object o = s.getFirstElement();
cl.remove(o);
m_rules.remove(o);
cl.refresh();
}
}
}
});
l = new Label(c, SWT.NONE);
l.setText(this.m_i18n.getString(this.NAMESPACE, "ruledesc", "label", this.m_language));
final Text ruleAsText = new Text(c, SWT.BORDER | SWT.WRAP);
ruleAsText.setLayoutData(new GridData(GridData.FILL_BOTH));
ruleAsText.setEditable(false);
cl.addSelectionChangedListener(new ISelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent event) {
StructuredSelection selected = (StructuredSelection) event.getSelection();
if (selected.isEmpty()) {
deleteButton.setEnabled(false);
changeButton.setEnabled(false);
copyButton.setEnabled(false);
} else {
deleteButton.setEnabled(true);
changeButton.setEnabled(true);
copyButton.setEnabled(true);
}
IRule rule = (IRule) selected.getFirstElement();
ruleAsText.setText(createDescription(rule));
}
});
return c;
}
use of de.janrufmonitor.framework.rules.IRule in project janrufmonitor by tbrandt77.
the class RuleAssistent method getRules.
private List getRules() {
if (this.m_rules == null || this.m_rules.size() == 0) {
this.m_rules = new ArrayList();
IRuleEngine ruleEditor = this.getRuntime().getRuleEngine();
List rList = ruleEditor.getRules();
for (int i = 0; i < rList.size(); i++) {
IRule rule = (IRule) rList.get(i);
if (rule != null) {
IRule r = ruleEditor.createRule(rule.toString());
if (r != null)
this.m_rules.add(r);
}
}
}
return this.m_rules;
}
Aggregations