e0f4397dc7f068c635a5bff82a8f16b9aace7229
[platform/upstream/iotivity.git] / service / simulator / java / eclipse-plugin / ServiceProviderPlugin / src / oic / simulator / serviceprovider / view / dialogs / FilterDialog.java
1 package oic.simulator.serviceprovider.view.dialogs;
2
3 import java.util.ArrayList;
4 import java.util.Collections;
5 import java.util.Map;
6
7 import oic.simulator.serviceprovider.manager.LogManager;
8
9 import org.eclipse.jface.dialogs.TrayDialog;
10 import org.eclipse.swt.SWT;
11 import org.eclipse.swt.events.SelectionAdapter;
12 import org.eclipse.swt.events.SelectionEvent;
13 import org.eclipse.swt.layout.GridData;
14 import org.eclipse.swt.layout.GridLayout;
15 import org.eclipse.swt.widgets.Button;
16 import org.eclipse.swt.widgets.Composite;
17 import org.eclipse.swt.widgets.Control;
18 import org.eclipse.swt.widgets.Group;
19 import org.eclipse.swt.widgets.Shell;
20
21 public class FilterDialog extends TrayDialog {
22     private Map<Integer, Boolean> severities;
23
24     public FilterDialog(Shell shell, Map<Integer, Boolean> severities) {
25         super(shell);
26         this.severities = severities;
27     }
28
29     @Override
30     protected void configureShell(Shell shell) {
31         super.configureShell(shell);
32     }
33
34     @Override
35     protected Control createDialogArea(Composite parent) {
36         Composite composite = (Composite) super.createDialogArea(parent);
37         createSeverityGroup(composite);
38         getShell().setText("Filter details");
39         return composite;
40     }
41
42     /**
43      * Dynamically creates a check-box list for severity levels for user to
44      * choose from
45      */
46     private void createSeverityGroup(Composite parent) {
47         Group group = new Group(parent, SWT.NONE);
48         group.setLayout(new GridLayout());
49         GridData gd = new GridData(GridData.FILL_HORIZONTAL);
50         gd.widthHint = 275;
51         group.setLayoutData(gd);
52         group.setText("Severity Levels");
53
54         ArrayList<Integer> arrayList = new ArrayList<Integer>(
55                 severities.keySet());
56         Collections.sort(arrayList);
57         for (final Integer i : arrayList) {
58             final Button checkbox = new Button(group, SWT.CHECK);
59             checkbox.setText(LogManager.getSeverityName(i));
60             checkbox.setSelection(severities.get(i));
61             checkbox.addSelectionListener(new SelectionAdapter() {
62
63                 @Override
64                 public void widgetSelected(SelectionEvent e) {
65                     severities.put(i, checkbox.getSelection());
66                 }
67             });
68         }
69     }
70
71     @Override
72     public boolean isHelpAvailable() {
73         return false;
74     }
75 }