Search in sources :

Example 1 with IRule

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);
}
Also used : RuleWizard(de.janrufmonitor.ui.jface.wizards.RuleWizard) Shell(org.eclipse.swt.widgets.Shell) WizardDialog(org.eclipse.jface.wizard.WizardDialog) IRule(de.janrufmonitor.framework.rules.IRule) Display(org.eclipse.swt.widgets.Display)

Example 2 with IRule

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();
}
Also used : IRule(de.janrufmonitor.framework.rules.IRule)

Example 3 with IRule

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;
}
Also used : Composite(org.eclipse.swt.widgets.Composite) ICheckStateListener(org.eclipse.jface.viewers.ICheckStateListener) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) ISelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener) Label(org.eclipse.swt.widgets.Label) StructuredSelection(org.eclipse.jface.viewers.StructuredSelection) Text(org.eclipse.swt.widgets.Text) SelectionChangedEvent(org.eclipse.jface.viewers.SelectionChangedEvent) IRule(de.janrufmonitor.framework.rules.IRule) GridLayout(org.eclipse.swt.layout.GridLayout) Button(org.eclipse.swt.widgets.Button) GridData(org.eclipse.swt.layout.GridData) SelectionEvent(org.eclipse.swt.events.SelectionEvent) ArrayList(java.util.ArrayList) List(java.util.List) CheckStateChangedEvent(org.eclipse.jface.viewers.CheckStateChangedEvent)

Example 4 with IRule

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;
}
Also used : IRuleEngine(de.janrufmonitor.framework.rules.IRuleEngine) ArrayList(java.util.ArrayList) ArrayList(java.util.ArrayList) List(java.util.List) IRule(de.janrufmonitor.framework.rules.IRule)

Aggregations

IRule (de.janrufmonitor.framework.rules.IRule)4 ArrayList (java.util.ArrayList)2 List (java.util.List)2 IRuleEngine (de.janrufmonitor.framework.rules.IRuleEngine)1 RuleWizard (de.janrufmonitor.ui.jface.wizards.RuleWizard)1 CheckStateChangedEvent (org.eclipse.jface.viewers.CheckStateChangedEvent)1 ICheckStateListener (org.eclipse.jface.viewers.ICheckStateListener)1 ISelectionChangedListener (org.eclipse.jface.viewers.ISelectionChangedListener)1 SelectionChangedEvent (org.eclipse.jface.viewers.SelectionChangedEvent)1 StructuredSelection (org.eclipse.jface.viewers.StructuredSelection)1 WizardDialog (org.eclipse.jface.wizard.WizardDialog)1 SelectionAdapter (org.eclipse.swt.events.SelectionAdapter)1 SelectionEvent (org.eclipse.swt.events.SelectionEvent)1 GridData (org.eclipse.swt.layout.GridData)1 GridLayout (org.eclipse.swt.layout.GridLayout)1 Button (org.eclipse.swt.widgets.Button)1 Composite (org.eclipse.swt.widgets.Composite)1 Display (org.eclipse.swt.widgets.Display)1 Label (org.eclipse.swt.widgets.Label)1 Shell (org.eclipse.swt.widgets.Shell)1