summaryrefslogtreecommitdiffstats
path: root/rba.tool.editor.ui/src/rba/tool/editor/ui/coverage/TCLogFormatPreferencePage.java
blob: fd6afdfc01d7656be22ee617a2294a59dbf7be29 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
package rba.tool.editor.ui.coverage;

import org.eclipse.core.runtime.preferences.InstanceScope;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.preference.RadioGroupFieldEditor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
import org.eclipse.ui.preferences.ScopedPreferenceStore;

public class TCLogFormatPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {

    private IPreferenceStore preferenceStore;

    private RadioGroupFieldEditor tclogFileFormat;

    private static final String DESCRIPTION = "tclog File Format";

    private static final String TEXT_FORMAT = "text";

    private static final String ZIP_FORMAT = "zip";

    private String selectedFormat = TEXT_FORMAT;

    private TCLogFormatSettingManager manager = TCLogFormatSettingManager.INSTANCE;

    public TCLogFormatPreferencePage() {
        super(GRID);
    }

    @Override
    public void init(IWorkbench workbench) {
        if (!getPreferenceStore().getString("FileFormat").isEmpty()) {
            selectedFormat = getPreferenceStore().getString("FileFormat");
        }
    }

    @Override
    protected void createFieldEditors() {

        String[][] btnArr = new String[][] { { "&Text", TEXT_FORMAT }, { "&Zip", ZIP_FORMAT } };
        tclogFileFormat = new RadioGroupFieldEditor("FileFormat", DESCRIPTION, 2, btnArr, getFieldEditorParent(), true);

        Composite composite = tclogFileFormat.getRadioBoxControl(getFieldEditorParent());
        Control[] controls = composite.getChildren();

        for (Control control : controls) {
            control.addListener(SWT.Selection, new Listener() {

                @Override
                public void handleEvent(Event event) {

                    Button btn = (Button) event.widget;
                    selectedFormat = (String) btn.getData();
                }
            });
        }

        addField(tclogFileFormat);
    }

    @Override
    public boolean performOk() {

        manager.saveTCLogFileFormat(selectedFormat);
        return super.performOk();
    }

    @Override
    public IPreferenceStore getPreferenceStore() {
        if (preferenceStore == null) {
            preferenceStore = new ScopedPreferenceStore(InstanceScope.INSTANCE, manager.ID_PREFERENCE_NODE);
        }
        return preferenceStore;
    }

}