Example usage for org.eclipse.jface.viewers LabelProvider LabelProvider

List of usage examples for org.eclipse.jface.viewers LabelProvider LabelProvider

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers LabelProvider LabelProvider.

Prototype

public LabelProvider() 

Source Link

Document

Creates a new label provider.

Usage

From source file:cl.utfsm.acs.acg.gui.CategoriesView.java

License:Open Source License

private void createViewWidgets(Composite parent) {
    SashForm sash = new SashForm(parent, SWT.HORIZONTAL);
    sash.setLayout(new FillLayout());

    /* Left pane */
    Composite categoriesComp = new Composite(sash, SWT.NONE);
    GridLayout layout = new GridLayout();
    layout.numColumns = 1;/*from  www  . ja  va  2s  .  com*/
    categoriesComp.setLayout(layout);

    _listGroup = new Group(categoriesComp, SWT.SHADOW_ETCHED_IN);
    GridData gd = new GridData();
    gd.horizontalAlignment = SWT.FILL;
    gd.verticalAlignment = SWT.FILL;
    gd.grabExcessHorizontalSpace = true;
    gd.grabExcessVerticalSpace = true;
    _listGroup.setLayoutData(gd);
    GridLayout gl = new GridLayout();
    gl.numColumns = 1;
    _listGroup.setLayout(gl);
    _listGroup.setText("Categories List");

    _categoriesList = new List(_listGroup, SWT.BORDER | SWT.V_SCROLL);
    _categoriesList.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    _categoriesList.addSelectionListener(new SelectionListener() {
        public void widgetDefaultSelected(SelectionEvent e) {
            widgetSelected(e);
        }

        public void widgetSelected(SelectionEvent e) {
            Control c = _compInitial.getChildren()[0];
            if (c instanceof Label) {
                c.dispose();
            }
            _comp.setVisible(true);
            _comp.layout();

            /* Fill with the contents of the selected category */
            /* The default category is stored as the data of the _categoryList */
            /* and is shown with a "*" in the list */
            if (_categoriesList.getSelection() == null || _categoriesList.getSelection().length == 0) {
                _comp.setVisible(false);
                _comp.layout();
                return;
            }
            String categoryName = _categoriesList.getSelection()[0];
            if (categoryName.startsWith("*"))
                fillCategoryInfo((String) _categoriesList.getData());
            else
                fillCategoryInfo(categoryName);
            if (_ffList.getItemCount() == 0)
                _errorMessageLabel.setText("You have to select at least one Fault Family");
        }
    });

    /* Add and remove buttons */
    Composite categoriesButtonsComp = new Composite(categoriesComp, SWT.NONE);
    layout = new GridLayout();
    layout.numColumns = 2;
    categoriesButtonsComp.setLayout(layout);
    categoriesButtonsComp.setLayoutData(new GridData(SWT.FILL, SWT.BOTTOM, true, false));

    _addCategoryButton = new Button(categoriesButtonsComp, SWT.None);
    _addCategoryButton.setText("Add");
    _addCategoryButton
            .setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_ADD));

    _deleteCategoryButton = new Button(categoriesButtonsComp, SWT.None);
    _deleteCategoryButton.setText("Delete");
    _deleteCategoryButton
            .setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_ETOOL_DELETE));

    Listener addCategory = new Listener() {
        public void handleEvent(Event event) {
            InputDialog dialog = new InputDialog(CategoriesView.this.getViewSite().getShell(), "New Category",
                    "Enter the Category name", null, new IInputValidator() {
                        public String isValid(String newText) {
                            if (newText.trim().compareTo("") == 0)
                                return "The name is empty";
                            return null;
                        }
                    });
            dialog.setBlockOnOpen(true);
            dialog.open();
            int returnCode = dialog.getReturnCode();
            if (returnCode == InputDialog.OK) {
                if (_categoryManager.getCategoryByPath(dialog.getValue()) != null) {
                    ErrorDialog error = new ErrorDialog(CategoriesView.this.getViewSite().getShell(),
                            "Category already exist",
                            "The Category " + dialog.getValue()
                                    + " already exists in the current configuration",
                            new Status(IStatus.ERROR, "cl.utfsm.acs.acg", "The Category " + dialog.getValue()
                                    + " already exists in the current configuration"),
                            IStatus.ERROR);
                    error.setBlockOnOpen(true);
                    error.open();
                    return;
                }
                Category newCategory = new Category();
                newCategory.setPath(dialog.getValue());
                InputDialog dialog2 = new InputDialog(CategoriesView.this.getViewSite().getShell(),
                        "Category Description", "Enter the Description for the Category", null,
                        new IInputValidator() {
                            public String isValid(String newText) {
                                if (newText.trim().compareTo("") == 0)
                                    return "The name is empty";
                                return null;
                            }
                        });
                dialog2.setBlockOnOpen(true);
                dialog2.open();
                String description = dialog2.getValue();
                if (description == null)
                    return;
                if (returnCode == InputDialog.OK)
                    newCategory.setDescription(description);

                java.util.List<String> ffnames = sortFullFaultFamilyList();

                ListSelectionDialog dialog3 = new ListSelectionDialog(
                        PlatformUI.getWorkbench().getDisplay().getActiveShell(), ffnames,
                        new ArrayContentProvider(), new LabelProvider(), "");

                dialog3.setTitle("Fault Family Selection");
                dialog3.setMessage("List of Fault Families");
                dialog3.setBlockOnOpen(true);
                dialog3.open();

                Object ffselected[] = dialog3.getResult();
                if (ffselected == null)
                    return;
                if (ffselected.length == 0) {
                    try {
                        _categoryManager.addCategory(newCategory);
                    } catch (IllegalOperationException e) {
                        ErrorDialog error = new ErrorDialog(CategoriesView.this.getViewSite().getShell(),
                                "Category already exist",
                                "The Category " + dialog.getValue()
                                        + " already exists in the current configuration",
                                new Status(IStatus.ERROR, "cl.utfsm.acs.acg", e.getMessage()), IStatus.ERROR);
                        error.setBlockOnOpen(true);
                        error.open();
                        return;
                    }
                } else {
                    Alarms alarms = new Alarms();
                    for (int i = 0; i < ffselected.length; i++) {
                        try {
                            alarms.addFaultFamily(
                                    _alarmManager.getFaultFamily((String) ffselected[i]).getName());
                            //alarms.setFaultFamily(i, (String)ffselected[i]);                       
                        } catch (NullPointerException e) {
                        }
                        newCategory.setAlarms(alarms);
                    }
                    try {
                        _categoryManager.addCategory(newCategory);
                    } catch (IllegalOperationException e) {
                        ErrorDialog error = new ErrorDialog(CategoriesView.this.getViewSite().getShell(),
                                "Category already exist",
                                "The Category " + dialog.getValue()
                                        + " already exists in the current configuration",
                                new Status(IStatus.ERROR, "cl.utfsm.acs.acg", e.getMessage()), IStatus.ERROR);
                        error.setBlockOnOpen(true);
                        error.open();
                        return;
                    }
                }
                String[] items = new String[1];
                items[0] = dialog.getValue();
                refreshContents();
                _categoriesList.setSelection(items);
                Event e = new Event();
                _categoriesList.notifyListeners(SWT.Selection, e);
                IWorkbenchWindow _window = getViewSite().getWorkbenchWindow();
                IViewReference[] views = _window.getActivePage().getViewReferences();
                IMyViewPart view = ((IMyViewPart) views[3].getView(false));
                //view.refreshContents();
                view.fillWidgets();
                if (_ffList.getItemCount() == 0)
                    _errorMessageLabel.setText("You have to select at least one Fault Family");
            } else
                return;
        }
    };
    _addCategoryButton.addListener(SWT.Selection, addCategory);
    Listener deleteCategory = new Listener() {
        public void handleEvent(Event event) {
            boolean choice = MessageDialog.openQuestion(CategoriesView.this.getViewSite().getShell(),
                    "Confirmation", "Are you sure you want to delete this Category");
            if (choice == true) {
                String tmp[] = _categoriesList.getSelection();
                if (tmp == null || tmp.length == 0) {
                    ErrorDialog error = new ErrorDialog(CategoriesView.this.getViewSite().getShell(),
                            "Empty selection", "There are no Categories selected to be deleted",
                            new Status(IStatus.ERROR, "cl.utfsm.acs.acg", ""), IStatus.ERROR);
                    error.setBlockOnOpen(true);
                    error.open();
                    return;
                }
                String category = tmp[0];
                if (category.startsWith("*")) {
                    ErrorDialog error = new ErrorDialog(CategoriesView.this.getViewSite().getShell(),
                            "Cannot delete Category", "The Category cannot be deleted",
                            new Status(IStatus.ERROR, "cl.utfsm.acs.acg",
                                    "There must be one default category. Please select a different one before removing this category."),
                            IStatus.ERROR);
                    error.setBlockOnOpen(true);
                    error.open();
                    return;
                }
                try {
                    _categoryManager.deleteCategory(_categoryManager.getCategoryByPath(category));
                } catch (IllegalOperationException e) {
                    ErrorDialog error = new ErrorDialog(CategoriesView.this.getViewSite().getShell(),
                            "Cannot delete Category", "The Category cannot be deleted",
                            new Status(IStatus.ERROR, "cl.utfsm.acs.acg", e.getMessage()), IStatus.ERROR);
                    error.setBlockOnOpen(true);
                    error.open();
                    return;
                }
                String[] items = null;
                if (_categoriesList.getSelection() != null && _categoriesList.getSelection().length != 0) {
                    items = _categoriesList.getSelection();
                    refreshContents();
                    if (items == null)
                        if (_categoriesList.getItemCount() > 0)
                            _categoriesList.setSelection(0);
                } else
                    _categoriesList.setSelection(items);
                Event e = new Event();
                _categoriesList.notifyListeners(SWT.Selection, e);
                IWorkbenchWindow _window = getViewSite().getWorkbenchWindow();
                IViewReference[] views = _window.getActivePage().getViewReferences();
                IMyViewPart view = ((IMyViewPart) views[3].getView(false));
                //view.refreshContents();
                view.fillWidgets();
            }
        }
    };
    _deleteCategoryButton.addListener(SWT.Selection, deleteCategory);

    /* To delete a FF from a given Category */
    Listener deleteFaultFamily = new Listener() {
        public void handleEvent(Event event) {
            Category c = _categoryManager.getCategoryByPath(_pathText.getText());
            try {
                String[] ff = c.getAlarms().getFaultFamily();
                Alarms alarms = new Alarms();
                String[] temp = _ffList.getSelection();
                //int j = 0;
                for (int i = 0; i < ff.length; i++) {
                    if (ff[i].compareTo(temp[0]) == 0) {
                        _ffList.remove(temp[0]);
                        c.getAlarms().removeFaultFamily(ff[i]);
                    } else {
                        alarms.addFaultFamily(ff[i]);
                        //alarms.setFaultFamily(j, ff[i]);
                        //j++;
                    }
                }
                c.setAlarms(alarms);
                _categoryManager.updateCategory(c, c);
                if (_ffList.getItemCount() == 0)
                    _errorMessageLabel.setText("You have to select at least one Fault Family");
                IWorkbenchWindow _window = getViewSite().getWorkbenchWindow();
                IViewReference[] views = _window.getActivePage().getViewReferences();
                IMyViewPart view = ((IMyViewPart) views[3].getView(false));
                //view.refreshContents();
                view.fillWidgets();
                boolean inUse = false;
                boolean def = false;
                String defCat = "";
                for (Category cat : _categoryManager.getAllCategories()) {
                    String[] ffs = cat.getAlarms().getFaultFamily();
                    for (String tff : ffs) {
                        if (tff.compareTo(temp[0]) == 0)
                            inUse = true;
                    }
                    if (cat.getIsDefault()) {
                        def = true;
                        defCat = cat.getPath();
                    }
                }
                if (!inUse) {
                    String msg;
                    if (def)
                        msg = "Default category: " + defCat;
                    else
                        msg = "No default category";
                    ErrorDialog error = new ErrorDialog(CategoriesView.this.getViewSite().getShell(),
                            "Fault Family isn't in any Categoty",
                            "The Fault Family is not part of any Category",
                            new Status(IStatus.WARNING, "cl.utfsm.acs.acg", "The Fault Family " + temp[0]
                                    + " is not part of any Category (" + msg + ")"),
                            IStatus.WARNING);
                    error.setBlockOnOpen(true);
                    error.open();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

    };

    /* To delete all FF from a given Category */
    Listener deleteAllFaultFamily = new Listener() {
        public void handleEvent(Event event) {
            Category c = _categoryManager.getCategoryByPath(_pathText.getText());
            try {
                String[] ff = c.getAlarms().getFaultFamily();
                Alarms alarms = new Alarms();
                for (int i = 0; i < ff.length; i++) {
                    _ffList.remove(ff[i]);
                    c.getAlarms().removeFaultFamily(ff[i]);
                }
                c.setAlarms(alarms);
                _categoryManager.updateCategory(c, c);
                IWorkbenchWindow _window = getViewSite().getWorkbenchWindow();
                IViewReference[] views = _window.getActivePage().getViewReferences();
                IMyViewPart view = ((IMyViewPart) views[3].getView(false));
                //view.refreshContents();
                view.fillWidgets();
                java.util.List<String> ffList = new ArrayList<String>();
                boolean def = false;
                String defCat = "";
                for (String cff : ff) {
                    Boolean inUse = false;
                    for (Category cat : _categoryManager.getAllCategories()) {
                        String[] ffs = cat.getAlarms().getFaultFamily();
                        for (String tff : ffs) {
                            if (tff.compareTo(cff) == 0)
                                inUse = true;
                        }
                        if (cat.getIsDefault()) {
                            def = true;
                            defCat = cat.getPath();
                        }
                    }
                    if (!inUse)
                        ffList.add(cff);
                }
                if (ffList.size() > 0) {
                    String list = "";
                    for (String ffel : ffList)
                        list = list + ffel + ", ";
                    list.substring(0, list.length() - 2);
                    String msg;
                    if (def)
                        msg = "Default category: " + defCat;
                    else
                        msg = "No default category";
                    ErrorDialog error = new ErrorDialog(CategoriesView.this.getViewSite().getShell(),
                            "Fault Family isn't in any Categoty",
                            "The Fault Family is not part of any Category",
                            new Status(IStatus.WARNING, "cl.utfsm.acs.acg", "The Fault Family(ies) " + list
                                    + " is not part of any Category (" + msg + ")"),
                            IStatus.WARNING);
                    error.setBlockOnOpen(true);
                    error.open();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            if (_ffList.getItemCount() == 0)
                _errorMessageLabel.setText("You have to select at least one Fault Family");
        }
    };

    /* To add a new FF to a Category */
    Listener addFaultFamily = new Listener() {
        public void handleEvent(Event event) {
            Category c = _categoryManager.getCategoryByPath(_pathText.getText());
            java.util.List<String> currentffs = new ArrayList<String>();
            try {
                String[] ffss = c.getAlarms().getFaultFamily();
                for (int i = 0; i < ffss.length; i++) {
                    currentffs.add(ffss[i]);
                }
            } catch (NullPointerException e) {
                e.printStackTrace();
            }
            java.util.List<String> ffnames = sortFullFaultFamilyList();
            ListSelectionDialog dialog3 = new ListSelectionDialog(
                    PlatformUI.getWorkbench().getDisplay().getActiveShell(), ffnames,
                    new ArrayContentProvider(), new LabelProvider(), "");

            dialog3.setTitle("Fault Family Selection");
            dialog3.setMessage("List of Fault Families");
            dialog3.setBlockOnOpen(true);
            if (currentffs != null)
                dialog3.setInitialElementSelections(currentffs);
            dialog3.open();
            if (dialog3.getReturnCode() == InputDialog.OK) {
                Object ffselected[] = dialog3.getResult();
                try {
                    Alarms alarms = new Alarms();
                    for (int i = 0; i < ffselected.length; i++)
                        alarms.addFaultFamily(_alarmManager.getFaultFamily((String) ffselected[i]).getName());
                    c.setAlarms(alarms);
                    _categoryManager.updateCategory(c, c);
                    sortCategoryFaultFamilyList(c.getPath());
                } catch (Exception e) {
                    e.printStackTrace();
                }
                String[] items = _categoriesList.getSelection();
                refreshContents();
                _categoriesList.setSelection(items);
                Event e = new Event();
                _categoriesList.notifyListeners(SWT.Selection, e);
                IWorkbenchWindow _window = getViewSite().getWorkbenchWindow();
                IViewReference[] views = _window.getActivePage().getViewReferences();
                IMyViewPart view = ((IMyViewPart) views[3].getView(false));
                //view.refreshContents();
                view.fillWidgets();
                if (_ffList.getItemCount() == 0)
                    _errorMessageLabel.setText("You have to select at least one Fault Family");
            }
        }
    };

    /* Initial label when no categories are selected */
    _compInitial = new Composite(sash, SWT.NONE);
    _compInitial.setLayout(new GridLayout());
    new Label(_compInitial, SWT.NONE).setText("Select a category");

    /* Fill the right pane Group that will be shown when
     * a category is selected in the left list */
    layout = new GridLayout();
    layout.numColumns = 2;
    GridData gridData = new GridData();
    gridData.grabExcessHorizontalSpace = true;
    gridData.grabExcessVerticalSpace = true;
    gridData.horizontalAlignment = SWT.FILL;
    gridData.verticalAlignment = SWT.FILL;
    _comp = new Group(_compInitial, SWT.SHADOW_ETCHED_IN);
    _comp.setText("Category information");
    _comp.setLayout(layout);
    _comp.setLayoutData(gridData);

    _pathLabel = new Label(_comp, SWT.NONE);
    _pathLabel.setText("Category name");
    _pathText = new Text(_comp, SWT.SINGLE | SWT.BORDER);
    gridData = new GridData();
    gridData.horizontalAlignment = SWT.FILL;
    gridData.grabExcessHorizontalSpace = true;
    _pathText.setLayoutData(gridData);

    _descriptionLabel = new Label(_comp, SWT.NONE);
    _descriptionLabel.setText("Category description");
    _descriptionText = new Text(_comp, SWT.SINGLE | SWT.BORDER);
    gridData = new GridData();
    gridData.horizontalAlignment = SWT.FILL;
    gridData.grabExcessHorizontalSpace = true;
    _descriptionText.setLayoutData(gridData);

    _isDefaultLabel = new Label(_comp, SWT.NONE);
    _isDefaultLabel.setText("Is default category?");
    _isDefaultCheck = new Button(_comp, SWT.CHECK);

    _ffLabel = new Label(_comp, SWT.NONE);
    _ffLabel.setText("Fault Families:");
    gridData = new GridData();
    gridData.verticalAlignment = SWT.TOP;
    gridData.horizontalSpan = 2;
    _ffLabel.setLayoutData(gridData);
    _ffList = new List(_comp, SWT.V_SCROLL | SWT.BORDER);
    gridData = new GridData();
    gridData.horizontalAlignment = SWT.FILL;
    gridData.grabExcessHorizontalSpace = true;
    gridData.verticalAlignment = SWT.FILL;
    gridData.grabExcessVerticalSpace = true;
    gridData.horizontalSpan = 2;
    _ffList.setLayoutData(gridData);

    _errorMessageLabel = new Label(_comp, SWT.NONE);
    _errorMessageLabel.setText("A");
    _errorMessageLabel.setForeground(getViewSite().getShell().getDisplay().getSystemColor(SWT.COLOR_RED));
    gd = new GridData();
    gd.grabExcessHorizontalSpace = true;
    gd.horizontalAlignment = SWT.FILL;
    gd.horizontalSpan = 2;
    _errorMessageLabel.setLayoutData(gd);

    /* Adding a click right menu to modify the FF of a given Category */
    Menu treePopUp1 = new Menu(parent);
    MenuItem treePopUpAddFF = new MenuItem(treePopUp1, SWT.PUSH);
    treePopUpAddFF.setText("Add a new Fault Family");
    treePopUpAddFF.addListener(SWT.Selection, addFaultFamily);
    MenuItem treePopUpDeleteFF = new MenuItem(treePopUp1, SWT.PUSH);
    treePopUpDeleteFF.setText("Delete this Fault Family");
    treePopUpDeleteFF.addListener(SWT.Selection, deleteFaultFamily);
    MenuItem treePopUpDeleteAllFF = new MenuItem(treePopUp1, SWT.PUSH);
    treePopUpDeleteAllFF.setText("Delete All Fault Families");
    treePopUpDeleteAllFF.addListener(SWT.Selection, deleteAllFaultFamily);
    _ffList.setMenu(treePopUp1);

    /* Adding a click menu to add/delete Categories */
    Menu treePopUp2 = new Menu(parent);
    MenuItem treePopUpaddCategory = new MenuItem(treePopUp2, SWT.PUSH);
    treePopUpaddCategory.setText("Add a new Category");
    treePopUpaddCategory.addListener(SWT.Selection, addCategory);
    MenuItem treePopUpdeleteCategory = new MenuItem(treePopUp2, SWT.PUSH);
    treePopUpdeleteCategory.setText("Delete this Category");
    treePopUpdeleteCategory.addListener(SWT.Selection, deleteCategory);
    _categoriesList.setMenu(treePopUp2);
    _comp.setVisible(false);

    /* Set a weight for each side of the view */
    sash.setWeights(new int[] { 3, 5 });
    Listener updateCategory = new Listener() {
        public void handleEvent(Event e) {
            updateName();
        }
    };
    _descriptionText.addListener(SWT.Modify, updateCategory);
    _pathText.addListener(SWT.Modify, updateCategory);

    _isDefaultCheck.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event e) {
            String category;
            if (_categoriesList.getSelection()[0].startsWith("*"))
                category = (String) _categoriesList.getData();
            else
                category = _categoriesList.getSelection()[0];
            if (_categoryManager.getCategoryByPath(category).getIsDefault() == true) {
                _isDefaultCheck.setSelection(true);
                MessageBox messageBox = new MessageBox(PlatformUI.getWorkbench().getDisplay().getActiveShell(),
                        SWT.ICON_ERROR);
                messageBox.setMessage("The Default Category always must exist, you can only change it");
                messageBox.open();
            } else {
                _categoryManager.updateDefaultCategory(
                        _categoryManager.getCategoryByPath(_categoriesList.getSelection()[0]));
                String[] items = _categoriesList.getSelection();
                refreshContents();
                items[0] = "* " + items[0];
                _categoriesList.setSelection(items);
                Event e2 = new Event();
                _categoriesList.notifyListeners(SWT.Selection, e2);
                IWorkbenchWindow _window = getViewSite().getWorkbenchWindow();
                IViewReference[] views = _window.getActivePage().getViewReferences();
                IMyViewPart view = ((IMyViewPart) views[3].getView(false));
                //view.refreshContents();
                view.fillWidgets();
            }
        }
    });
}

From source file:cl.utfsm.acs.acg.gui.ReductionsView.java

License:Open Source License

private void createViewWidgets(Composite parent) {
    _addElement = new Listener() {
        public void handleEvent(Event event) {
            TreeItem sel = null;//  w  w w. ja  v  a 2  s .  c om
            TreeItem item = null;
            if (_tree.getSelection() == null || _tree.getSelection().length == 0)
                return;
            sel = _tree.getSelection()[0];
            NodeType type = (NodeType) sel.getData();
            item = sel;
            if (type == NodeType.NODE_REDUCTION_PARENT_DATA
                    || type == NodeType.MULTIPLICITY_REDUCTION_PARENT_DATA)
                item = sel.getParentItem();
            type = (NodeType) item.getData();
            java.util.List<FaultFamily> ffs = _alarmManager.getAllAlarms();
            java.util.List<String> ffnames = new ArrayList<String>();
            for (FaultFamily ff : ffs) {
                if (ff.getFaultCodeCount() > 0 && ff.getFaultMemberCount() > 0)
                    ffnames.add(ff.getName());
            }
            Collections.sort(ffnames, IGNORE_CASE_ORDER);
            ListDialog dialog = new ListDialog(PlatformUI.getWorkbench().getDisplay().getActiveShell());
            dialog.setTitle("Create Reduction Rule");
            dialog.setMessage("Select Parent Fault Family");
            dialog.setBlockOnOpen(true);
            dialog.setInput(ffnames);
            dialog.setContentProvider(new ArrayContentProvider());
            dialog.setLabelProvider(new LabelProvider());
            dialog.open();
            if (dialog.getReturnCode() == InputDialog.CANCEL)
                return;
            String ffname = (String) dialog.getResult()[0];
            FaultMember[] fms = _alarmManager.getFaultFamily(ffname).getFaultMember();
            java.util.List<String> fmnames = new ArrayList<String>();
            for (FaultMember fm : fms) {
                fmnames.add(fm.getName());
            }
            Collections.sort(ffnames, IGNORE_CASE_ORDER);
            dialog = new ListDialog(PlatformUI.getWorkbench().getDisplay().getActiveShell());
            dialog.setTitle("Create Reduction Rule");
            dialog.setMessage("Select Parent Fault Member");
            dialog.setBlockOnOpen(true);
            dialog.setInput(fmnames);
            dialog.setContentProvider(new ArrayContentProvider());
            dialog.setLabelProvider(new LabelProvider());
            dialog.open();
            if (dialog.getReturnCode() == InputDialog.CANCEL)
                return;
            String fmname = (String) dialog.getResult()[0];
            FaultCode[] fcs = _alarmManager.getFaultFamily(ffname).getFaultCode();
            java.util.List<String> fcvalues = new ArrayList<String>();
            for (FaultCode fc : fcs) {
                fcvalues.add(Integer.toString(fc.getValue()));
            }
            Collections.sort(ffnames, IGNORE_CASE_ORDER);
            dialog = new ListDialog(PlatformUI.getWorkbench().getDisplay().getActiveShell());
            dialog.setTitle("Create Reduction Rule");
            dialog.setMessage("Select Parent Fault Code");
            dialog.setBlockOnOpen(true);
            dialog.setInput(fcvalues);
            dialog.setContentProvider(new ArrayContentProvider());
            dialog.setLabelProvider(new LabelProvider());
            dialog.open();
            if (dialog.getReturnCode() == InputDialog.CANCEL)
                return;
            String fcvalue = (String) dialog.getResult()[0];
            ReductionRule parent = null;
            boolean error = false;
            if (type == NodeType.NODE_REDUCTION) {
                parent = _reductionManager.getNRParentByTriplet(ffname, fmname, Integer.parseInt(fcvalue));
                TreeItem[] chs = _tree.getItems()[0].getItems();
                for (TreeItem ch : chs) {
                    if (ch.getText().compareTo("<" + ffname + "," + fmname + "," + fcvalue + ">") == 0)
                        error = true;
                }
            } else if (type == NodeType.MULTIPLICITY_REDUCTION) {
                parent = _reductionManager.getMRParentByTriplet(ffname, fmname, Integer.parseInt(fcvalue));
                TreeItem[] chs = _tree.getItems()[1].getItems();
                for (TreeItem ch : chs) {
                    if (ch.getText().compareTo("<" + ffname + "," + fmname + "," + fcvalue + ">") == 0)
                        error = true;
                }
            }
            if (error || parent != null) {
                ErrorDialog edialog = new ErrorDialog(ReductionsView.this.getViewSite().getShell(),
                        "Reduction Rule Already Exists",
                        "The reduction rule you are trying to create already exists", new Status(IStatus.ERROR,
                                "cl.utfsm.acs.acg", "The reduction rule parent already exists"),
                        IStatus.ERROR);
                edialog.setBlockOnOpen(true);
                edialog.open();
                return;
            } else
                parent = new ReductionRule(_alarmManager.getAlarm(ffname + ":" + fmname + ":" + fcvalue));
            TreeItem pTree = new TreeItem(item, SWT.NONE);
            pTree.setText("<" + ffname + "," + fmname + "," + fcvalue + ">");
            if (type == NodeType.NODE_REDUCTION) {
                pTree.setData(NodeType.NODE_REDUCTION_PARENT_DATA);
                parent.setIsNodeReduction(true);
            } else if (type == NodeType.MULTIPLICITY_REDUCTION) {
                pTree.setData(NodeType.MULTIPLICITY_REDUCTION_PARENT_DATA);
                parent.setIsNodeReduction(false);
            }
            _tree.setSelection(pTree);
            Event e = new Event();
            _tree.notifyListeners(SWT.Selection, e);
        }
    };

    _addRule = new Listener() {
        public void handleEvent(Event event) {
            Table t = (Table) event.widget;
            if (event.type == SWT.KeyUp)
                if (!(event.keyCode == SWT.CR || event.keyCode == ' '))
                    return;
            if (event.type == SWT.MouseDoubleClick) {
                Point pt = new Point(event.x, event.y);
                if (t.getItem(pt) == null)
                    return;
            }
            boolean isNode;
            if (_tree.getSelection() == null || _tree.getSelection().length == 0)
                return;
            TreeItem tmp1 = _tree.getSelection()[0];
            if ((NodeType) _tree.getSelection()[0].getData() == NodeType.NODE_REDUCTION_PARENT_DATA)
                isNode = true;
            else if ((NodeType) _tree.getSelection()[0]
                    .getData() == NodeType.MULTIPLICITY_REDUCTION_PARENT_DATA)
                isNode = false;
            else
                return;
            String[] tr = getTriplet(tmp1.getText());
            ReductionRule parent;
            if (isNode)
                parent = _reductionManager.getNRParentByTriplet(tr[0], tr[1], Integer.parseInt(tr[2]));
            else
                parent = _reductionManager.getMRParentByTriplet(tr[0], tr[1], Integer.parseInt(tr[2]));
            if (t.getSelection() == null || t.getSelection().length == 0)
                return;
            TableItem item = t.getSelection()[0];
            Alarm p, c;
            if (parent == null) {
                if (isNode)
                    p = _alarmManager.getAlarm(_NRParentFFCombo.getText() + ":" + _NRParentFMCombo.getText()
                            + ":" + _NRParentFCCombo.getText());
                else
                    p = _alarmManager.getAlarm(_MRParentFFCombo.getText() + ":" + _MRParentFMCombo.getText()
                            + ":" + _MRParentFCCombo.getText());
                if (p == null) {
                    if (isNode)
                        _NRParentErrorMessageLabel.setText("Couldn't find parent alarm.");
                    else
                        _MRParentErrorMessageLabel.setText("Couldn't find parent alarm.");
                    return;
                }
                c = null;
            } else {
                p = parent.getParent();
                c = parent.getChild(item.getText());
            }

            if (c == null) {
                //Add child
                c = _alarmManager.getAlarm(item.getText());
                if (c == null) {
                    if (isNode)
                        _NRParentErrorMessageLabel.setText("Couldn't find child alarm.");
                    else
                        _MRParentErrorMessageLabel.setText("Couldn't find child alarm.");
                    return;
                }
                try {
                    if (isNode)
                        _reductionManager.addNodeReductionRule(p, c);
                    else {
                        _reductionManager.addMultiReductionRule(p, c);
                        if (parent == null)
                            _reductionManager.updateMultiThreshold(p,
                                    Integer.parseInt(_MRParentThresholdText.getText()));
                    }
                    item.setImage(Activator.getDefault().getImageRegistry().get(Activator.IMG_TICKET));
                    if (parent == null)
                        _tree.getSelection()[0].setText("<" + p.getAlarmId().replace(':', ',') + ">");
                    if (isNode)
                        _NRParentErrorMessageLabel.setText("");
                    else
                        _MRParentErrorMessageLabel.setText("");
                } catch (IllegalOperationException e) {
                    if (isNode)
                        _NRParentErrorMessageLabel.setText(e.getMessage());
                    else
                        _MRParentErrorMessageLabel.setText(e.getMessage());
                }
            } else {
                //Remove child
                try {
                    //ReductionRule rr;
                    if (isNode) {
                        _reductionManager.deleteNodeReductionRule(p, c);
                        //rr = _reductionManager.getNRParentByTriplet(p.getTriplet().getFaultFamily(), p.getTriplet().getFaultMember(), p.getTriplet().getFaultCode());
                    } else {
                        _reductionManager.deleteMultiReductionRule(p, c);
                        //rr = _reductionManager.getMRParentByTriplet(p.getTriplet().getFaultFamily(), p.getTriplet().getFaultMember(), p.getTriplet().getFaultCode());
                    }
                } catch (IllegalOperationException e) {
                    e.printStackTrace();
                }
                item.setImage((org.eclipse.swt.graphics.Image) null);
            }
            fillMRParentChAlarmList(tr[0], tr[1], Integer.parseInt(tr[2]));
            sortReductionRulesList();
            Triplet t2 = p.getTriplet();
            if (isNode)
                selectElementFromTree(
                        "<" + t2.getFaultFamily() + "," + t2.getFaultMember() + "," + t2.getFaultCode() + ">",
                        true);
            else
                selectElementFromTree(
                        "<" + t2.getFaultFamily() + "," + t2.getFaultMember() + "," + t2.getFaultCode() + ">",
                        false);
        }
    };

    _removeElement = new Listener() {
        public void handleEvent(Event event) {
            boolean choice = MessageDialog.openQuestion(ReductionsView.this.getViewSite().getShell(),
                    "Confirmation", "Are you sure you want to delete this element");
            if (choice == true) {
                TreeItem sel = null;
                if (_tree.getSelection() == null || _tree.getSelection().length == 0)
                    return;
                NodeType type = (NodeType) _tree.getSelection()[0].getData();
                if (type == NodeType.NODE_REDUCTION || type == NodeType.MULTIPLICITY_REDUCTION)
                    return;
                TreeItem item = _tree.getSelection()[0];
                String[] tr = getTriplet(item.getText());
                try {
                    if (type == NodeType.NODE_REDUCTION_PARENT_DATA) {
                        //Remove all the NODE REDUCTION Rules in which this node is parent.
                        ReductionRule rr = _reductionManager.getNRParentByTriplet(tr[0], tr[1],
                                Integer.parseInt(tr[2]));
                        if (rr != null) {
                            Alarm p = rr.getParent();
                            List<Alarm> chL = rr.getChildren();
                            Alarm[] als = new Alarm[chL.size()];
                            chL.toArray(als);
                            for (int i = 0; i < als.length; i++)
                                _reductionManager.deleteNodeReductionRule(p, als[i]);
                        }
                    } else if (type == NodeType.MULTIPLICITY_REDUCTION_PARENT_DATA) {
                        //Remove all the MULTIPLICITY REDUCTION Rules in which this node is a parent.
                        ReductionRule rr = _reductionManager.getMRParentByTriplet(tr[0], tr[1],
                                Integer.parseInt(tr[2]));
                        if (rr != null) {
                            Alarm p = rr.getParent();
                            List<Alarm> chL = rr.getChildren();
                            Alarm[] als = new Alarm[chL.size()];
                            chL.toArray(als);
                            for (int i = 0; i < als.length; i++)
                                _reductionManager.deleteMultiReductionRule(p, als[i]);
                        }
                    }
                } catch (NullPointerException e) {
                    ErrorDialog error = new ErrorDialog(ReductionsView.this.getViewSite().getShell(),
                            "Cannot delete the item", e.getMessage(),
                            new Status(IStatus.ERROR, "cl.utfsm.acs.acg", e.getMessage()), IStatus.ERROR);
                    error.setBlockOnOpen(true);
                    error.open();
                } catch (IllegalOperationException e) {
                    ErrorDialog error = new ErrorDialog(ReductionsView.this.getViewSite().getShell(),
                            "Cannot delete the item", e.getMessage(),
                            new Status(IStatus.ERROR, "cl.utfsm.acs.acg", e.getMessage()), IStatus.ERROR);
                    error.setBlockOnOpen(true);
                    error.open();
                }
                sel = _tree.getSelection()[0].getParentItem();
                _tree.getSelection()[0].dispose();
                _tree.setSelection(sel);
                Event e = new Event();
                _tree.notifyListeners(SWT.Selection, e);
            }
        }
    };
    _sash = new SashForm(parent, SWT.NONE);
    _sash.setLayout(new FillLayout());

    _reductionsComp = new Composite(_sash, SWT.NONE);
    GridLayout layout = new GridLayout();
    layout.numColumns = 1;
    _reductionsComp.setLayout(layout);

    _treeGroup = new Group(_reductionsComp, SWT.SHADOW_ETCHED_IN);
    GridData gd = new GridData();
    gd.horizontalAlignment = SWT.FILL;
    gd.verticalAlignment = SWT.FILL;
    gd.grabExcessHorizontalSpace = true;
    gd.grabExcessVerticalSpace = true;
    _treeGroup.setLayoutData(gd);
    GridLayout gl = new GridLayout();
    gl.numColumns = 1;
    _treeGroup.setLayout(gl);
    _treeGroup.setText("Reduction Rules List");

    _tree = new Tree(_treeGroup, SWT.VIRTUAL | SWT.BORDER);
    gd = new GridData();
    gd.verticalAlignment = SWT.FILL;
    gd.horizontalAlignment = SWT.FILL;
    gd.grabExcessVerticalSpace = true;
    gd.grabExcessHorizontalSpace = true;
    _tree.setLayoutData(gd);
    Menu treePopUp = new Menu(parent);
    /*
    MenuItem treePopUpDelete = new MenuItem(treePopUp,SWT.PUSH);
    treePopUpDelete.setText("Delete");
    treePopUpDelete.addListener(SWT.Selection, _removeElement);
    MenuItem treePopUpAddRule = new MenuItem(treePopUp,SWT.PUSH);
    treePopUpAddRule.setText("Add Rule");
    treePopUpAddRule.addListener(SWT.Selection, _addElement);
    MenuItem treePopUpAddChildren = new MenuItem(treePopUp,SWT.PUSH);
    treePopUpAddChildren.setText("Add Children");
    //treePopUpAddChildren.addListener(SWT.Selection, _addElement);
    */
    _tree.setMenu(treePopUp);
    treePopUp.addListener(SWT.Show, new Listener() {
        public void handleEvent(Event e) {
            TreeItem sel = _tree.getSelection()[0];
            NodeType type = (NodeType) sel.getData();
            Menu treePopUp = _tree.getMenu();
            MenuItem[] items = treePopUp.getItems();
            for (int i = 0; i < items.length; i++)
                items[i].dispose();
            MenuItem mitem;
            switch (type) {
            case NODE_REDUCTION:
                mitem = new MenuItem(treePopUp, SWT.PUSH);
                mitem.setText("Add Node Reduction Rule Parent");
                mitem.addListener(SWT.Selection, _addElement);
                break;
            case NODE_REDUCTION_PARENT_DATA:
                mitem = new MenuItem(treePopUp, SWT.PUSH);
                mitem.setText("Delete Node Reduction Rules for this parent");
                mitem.addListener(SWT.Selection, _removeElement);
                break;
            case MULTIPLICITY_REDUCTION:
                mitem = new MenuItem(treePopUp, SWT.PUSH);
                mitem.setText("Add Multiplicity Reduction Rule Parent");
                mitem.addListener(SWT.Selection, _addElement);
                break;
            case MULTIPLICITY_REDUCTION_PARENT_DATA:
                mitem = new MenuItem(treePopUp, SWT.PUSH);
                mitem.setText("Delete Multiplicity Reduction Rules for this parent");
                mitem.addListener(SWT.Selection, _removeElement);
                break;
            default:
                for (int i = 0; i < items.length; i++)
                    items[i].dispose();
                break;
            }
        }
    });

    _tree.addSelectionListener(new SelectionListener() {
        public void widgetDefaultSelected(SelectionEvent e) {
            widgetSelected(e);
        }

        public void widgetSelected(SelectionEvent e) {
            TreeItem[] tmp = ((Tree) e.widget).getSelection();
            if (tmp == null || tmp.length == 0)
                return;

            TreeItem item = tmp[0];
            NodeType type = (NodeType) item.getData();
            Control c = _compInitial.getChildren()[0];

            if (c instanceof Label) {
                c.dispose();
                _compInitial.layout();
                c = _compInitial.getChildren()[0];
            }

            if (type == NodeType.NODE_REDUCTION) {
                _NRParentGroup.setVisible(false);
                ((GridData) _NRParentGroup.getLayoutData()).exclude = true;
                _MRParentGroup.setVisible(false);
                ((GridData) _MRParentGroup.getLayoutData()).exclude = true;
            } else if (type == NodeType.NODE_REDUCTION_PARENT_DATA) {
                _NRParentGroup.setVisible(true);
                ((GridData) _NRParentGroup.getLayoutData()).exclude = false;
                _MRParentGroup.setVisible(false);
                ((GridData) _MRParentGroup.getLayoutData()).exclude = true;

                String[] triplet = getTriplet(item.getText());
                fillNRParentWidgets(triplet[0], triplet[1], Integer.parseInt(triplet[2]));
                _NRParentGroup.moveAbove(c);
                _compInitial.layout();
            } else if (type == NodeType.MULTIPLICITY_REDUCTION) {
                _NRParentGroup.setVisible(false);
                ((GridData) _NRParentGroup.getLayoutData()).exclude = true;
                _MRParentGroup.setVisible(false);
                ((GridData) _MRParentGroup.getLayoutData()).exclude = true;
            } else if (type == NodeType.MULTIPLICITY_REDUCTION_PARENT_DATA) {
                _NRParentGroup.setVisible(false);
                ((GridData) _NRParentGroup.getLayoutData()).exclude = true;
                _MRParentGroup.setVisible(true);
                ((GridData) _MRParentGroup.getLayoutData()).exclude = false;

                String[] triplet = getTriplet(item.getText());
                fillMRParentWidgets(triplet[0], triplet[1], Integer.parseInt(triplet[2]));

                _MRParentGroup.moveAbove(c);
                _compInitial.layout();
            }
        }
    });

    /* Top widget of the right side */
    _compInitial = new Composite(_sash, SWT.NONE);
    _compInitial.setLayout(new GridLayout());

    new Label(_compInitial, SWT.NONE).setText("Select a reduction rule");

    /* NR/MR Details */
    createNRParentWidgets();
    createMRParentWidgets();

    _NRParentGroup.setVisible(false);
    _MRParentGroup.setVisible(false);
    _sash.setWeights(new int[] { 3, 5 });
}

From source file:cn.dockerfoundry.ide.eclipse.explorer.ui.views.property.DockerContainerElementPropertySource.java

License:Open Source License

@Override
public IPropertyDescriptor[] getPropertyDescriptors() {
    if (propertyDescriptors == null) {
        final DockerContainerElement elem = dockerContainerElement;
        //           @JsonProperty("Id") private String id;
        //           @JsonProperty("Names") private ImmutableList<String> names;
        //           @JsonProperty("Image") private String image;
        //           @JsonProperty("Command") private String command;
        //           @JsonProperty("Created") private Long created;
        //           @JsonProperty("Status") private String status;
        //           @JsonProperty("Ports") private ImmutableList<PortMapping> ports;
        //           @JsonProperty("SizeRw") private Long sizeRw;
        //           @JsonProperty("SizeRootFs") private Long sizeRootFs;

        // Create a descriptor and set a category
        PropertyDescriptor idDescriptor = new PropertyDescriptor("container.Id", "Id");
        idDescriptor.setLabelProvider(new LabelProvider() {
            public String getText(Object element) {
                System.out.println("::" + element);
                return elem.getId();
            }/*from   w ww.  j  a v  a 2  s  .c  o m*/
        });

        //         List<String> names = elem.getNames();
        //         if(names != null){
        //            for (Iterator<String> iterator = names.iterator(); iterator.hasNext();) {
        //               String name = (String) iterator.next();
        //               
        //            }
        //         }
        PropertyDescriptor namesDescriptor = new PropertyDescriptor("container.Names", "Names");
        namesDescriptor.setLabelProvider(new LabelProvider() {
            public String getText(Object element) {
                return elem.getNamesAsString();
            }
        });
        PropertyDescriptor imageDescriptor = new PropertyDescriptor("container.Image", "Image");
        imageDescriptor.setLabelProvider(new LabelProvider() {
            public String getText(Object element) {
                return elem.getImage();
            }
        });
        PropertyDescriptor commandDescriptor = new PropertyDescriptor("container.Command", "Command");
        commandDescriptor.setLabelProvider(new LabelProvider() {
            public String getText(Object element) {
                return elem.getCommand();
            }
        });
        PropertyDescriptor createdDescriptor = new PropertyDescriptor("container.Created", "Created");
        createdDescriptor.setLabelProvider(new LabelProvider() {
            public String getText(Object element) {
                return elem.getCreated();
            }
        });
        PropertyDescriptor statusDescriptor = new PropertyDescriptor("container.Status", "Status");
        statusDescriptor.setLabelProvider(new LabelProvider() {
            public String getText(Object element) {
                return elem.getStatus();
            }
        });

        //         final ContainerConfig containerConfig = imageInfo.containerConfig();
        //         PropertyDescriptor containerConfigHostnameDescriptor = new PropertyDescriptor(
        //               "Hostname", "Hostname");
        //         containerConfigHostnameDescriptor
        //               .setLabelProvider(new LabelProvider() {
        //                  public String getText(Object element) {
        //                     return containerConfig.hostname();
        //                  }
        //               });
        //         containerConfigHostnameDescriptor.setCategory("ContainerConfig");

        PropertyDescriptor portsDescriptor = new PropertyDescriptor("container.Ports", "Ports");
        portsDescriptor.setLabelProvider(new LabelProvider() {
            public String getText(Object element) {
                return elem.getPortsAsString();
            }
        });

        PropertyDescriptor sizeRwDescriptor = new PropertyDescriptor("container.SizeRw", "SizeRw");
        sizeRwDescriptor.setLabelProvider(new LabelProvider() {
            public String getText(Object element) {
                return elem.getSizeRw() == null ? "" : elem.getSizeRw().toString();
            }
        });

        PropertyDescriptor sizeRootFsDescriptor = new PropertyDescriptor("container.SizeRootFs", "SizeRootFs");
        sizeRootFsDescriptor.setLabelProvider(new LabelProvider() {
            public String getText(Object element) {
                return elem.getSizeRootFs() == null ? "" : elem.getSizeRootFs().toString();
            }
        });

        //         final ContainerConfig config = imageInfo.config();
        //         PropertyDescriptor configHostnameDescriptor = new PropertyDescriptor(
        //               "Config.Hostname", "Hostname");
        //         configHostnameDescriptor
        //               .setLabelProvider(new LabelProvider() {
        //                  public String getText(Object element) {
        //                     return config.hostname();
        //                  }
        //               });
        //         configHostnameDescriptor.setCategory("Config");

        //         PropertyDescriptor architectureDescriptor = new PropertyDescriptor(
        //               "Architecture", "Architecture");
        //         architectureDescriptor.setLabelProvider(new LabelProvider() {
        //            public String getText(Object element) {
        //               return ((ImageInfo) element).architecture();
        //            }
        //         });
        //         
        //         PropertyDescriptor osDescriptor = new PropertyDescriptor(
        //               "Os", "Os");
        //         osDescriptor.setLabelProvider(new LabelProvider() {
        //            public String getText(Object element) {
        //               return ((ImageInfo) element).os();
        //            }
        //         });
        //         
        //         PropertyDescriptor sizeDescriptor = new PropertyDescriptor(
        //               "Size", "Size");
        //         sizeDescriptor.setLabelProvider(new LabelProvider() {
        //            public String getText(Object element) {
        //               return ((ImageInfo) element).size().toString();
        //            }
        //         });
        idDescriptor.setCategory("Container");
        namesDescriptor.setCategory("Container");
        imageDescriptor.setCategory("Container");
        commandDescriptor.setCategory("Container");
        createdDescriptor.setCategory("Container");
        statusDescriptor.setCategory("Container");
        portsDescriptor.setCategory("Container");
        sizeRwDescriptor.setCategory("Container");
        sizeRootFsDescriptor.setCategory("Container");

        propertyDescriptors = new IPropertyDescriptor[] { idDescriptor, namesDescriptor, imageDescriptor,
                commandDescriptor, createdDescriptor, statusDescriptor, portsDescriptor, sizeRwDescriptor,
                sizeRootFsDescriptor };
    }
    return propertyDescriptors;
}

From source file:cn.dockerfoundry.ide.eclipse.explorer.ui.views.property.DockerImageElementPropertySource.java

License:Open Source License

@Override
public IPropertyDescriptor[] getPropertyDescriptors() {
    if (propertyDescriptors == null) {
        final ImageInfo imageInfo = dockerImageElement.getImageInfo();
        // @JsonProperty("Id") private String id;
        // @JsonProperty("Parent") private String parent;
        // @JsonProperty("Comment") private String comment;
        // @JsonProperty("Created") private Date created;
        // @JsonProperty("Container") private String container;
        // @JsonProperty("ContainerConfig") private ContainerConfig
        // containerConfig;
        // @JsonProperty("DockerVersion") private String dockerVersion;
        // @JsonProperty("Author") private String author;
        // @JsonProperty("Config") private ContainerConfig config;
        // @JsonProperty("Architecture") private String architecture;
        // @JsonProperty("Os") private String os;
        // @JsonProperty("Size") private Long size;

        // Create a descriptor and set a category
        PropertyDescriptor idDescriptor = new PropertyDescriptor("Id", "Id");
        idDescriptor.setLabelProvider(new LabelProvider() {
            public String getText(Object element) {
                System.out.println("::" + element);
                return imageInfo.id();
            }/*from   w  w  w  .  j av a  2s  .c  o  m*/
        });
        PropertyDescriptor parentDescriptor = new PropertyDescriptor("Parent", "Parent");
        parentDescriptor.setLabelProvider(new LabelProvider() {
            public String getText(Object element) {
                return ((ImageInfo) element).parent();
            }
        });
        PropertyDescriptor commentDescriptor = new PropertyDescriptor("Comment", "Comment");
        commentDescriptor.setLabelProvider(new LabelProvider() {
            public String getText(Object element) {
                return ((ImageInfo) element).comment();
            }
        });
        PropertyDescriptor createdDescriptor = new PropertyDescriptor("Created", "Created");
        createdDescriptor.setLabelProvider(new LabelProvider() {
            public String getText(Object element) {
                return ((ImageInfo) element).created().toString();
            }
        });
        PropertyDescriptor containerDescriptor = new PropertyDescriptor("Container", "Container");
        containerDescriptor.setLabelProvider(new LabelProvider() {
            public String getText(Object element) {
                return ((ImageInfo) element).container();
            }
        });

        // @JsonProperty("Hostname") private String hostname;
        // @JsonProperty("Domainname") private String domainname;
        // @JsonProperty("User") private String user;
        // @JsonProperty("Memory") private Long memory;
        // @JsonProperty("MemorySwap") private Long memorySwap;
        // @JsonProperty("CpuShares") private Long cpuShares;
        // @JsonProperty("Cpuset") private String cpuset;
        // @JsonProperty("AttachStdin") private Boolean attachStdin;
        // @JsonProperty("AttachStdout") private Boolean attachStdout;
        // @JsonProperty("AttachStderr") private Boolean attachStderr;
        // @JsonProperty("PortSpecs") private ImmutableList<String>
        // portSpecs;
        // @JsonProperty("ExposedPorts") private ImmutableSet<String>
        // exposedPorts;
        // @JsonProperty("Tty") private Boolean tty;
        // @JsonProperty("OpenStdin") private Boolean openStdin;
        // @JsonProperty("StdinOnce") private Boolean stdinOnce;
        // @JsonProperty("Env") private ImmutableList<String> env;
        // @JsonProperty("Cmd") private ImmutableList<String> cmd;
        // @JsonProperty("Image") private String image;
        // @JsonProperty("Volumes") private ImmutableSet<String> volumes;
        // @JsonProperty("WorkingDir") private String workingDir;
        // @JsonProperty("Entrypoint") private ImmutableList<String>
        // entrypoint;
        // @JsonProperty("NetworkDisabled") private Boolean networkDisabled;
        // @JsonProperty("OnBuild") private ImmutableList<String> onBuild;
        final ContainerConfig containerConfig = imageInfo.containerConfig();
        PropertyDescriptor containerConfigHostnameDescriptor = new PropertyDescriptor("Hostname", "Hostname");
        containerConfigHostnameDescriptor.setLabelProvider(new LabelProvider() {
            public String getText(Object element) {
                return containerConfig.hostname();
            }
        });
        containerConfigHostnameDescriptor.setCategory("ContainerConfig");

        PropertyDescriptor dockerVersionDescriptor = new PropertyDescriptor("DockerVersion", "DockerVersion");
        dockerVersionDescriptor.setLabelProvider(new LabelProvider() {
            public String getText(Object element) {
                return ((ImageInfo) element).dockerVersion();
            }
        });

        PropertyDescriptor authorDescriptor = new PropertyDescriptor("Author", "Author");
        authorDescriptor.setLabelProvider(new LabelProvider() {
            public String getText(Object element) {
                return ((ImageInfo) element).author();
            }
        });

        final ContainerConfig config = imageInfo.config();
        PropertyDescriptor configHostnameDescriptor = new PropertyDescriptor("Config.Hostname", "Hostname");
        configHostnameDescriptor.setLabelProvider(new LabelProvider() {
            public String getText(Object element) {
                return config.hostname();
            }
        });
        configHostnameDescriptor.setCategory("Config");

        PropertyDescriptor architectureDescriptor = new PropertyDescriptor("Architecture", "Architecture");
        architectureDescriptor.setLabelProvider(new LabelProvider() {
            public String getText(Object element) {
                return ((ImageInfo) element).architecture();
            }
        });

        PropertyDescriptor osDescriptor = new PropertyDescriptor("Os", "Os");
        osDescriptor.setLabelProvider(new LabelProvider() {
            public String getText(Object element) {
                return ((ImageInfo) element).os();
            }
        });

        PropertyDescriptor sizeDescriptor = new PropertyDescriptor("Size", "Size");
        sizeDescriptor.setLabelProvider(new LabelProvider() {
            public String getText(Object element) {
                return ((ImageInfo) element).size().toString();
            }
        });
        propertyDescriptors = new IPropertyDescriptor[] { idDescriptor, parentDescriptor, commentDescriptor,
                createdDescriptor, containerDescriptor, containerConfigHostnameDescriptor,
                dockerVersionDescriptor, authorDescriptor, configHostnameDescriptor, architectureDescriptor,
                osDescriptor, sizeDescriptor };
    }
    return propertyDescriptors;
}

From source file:cn.dockerfoundry.ide.eclipse.server.ui.internal.actions.OpenHomePageCommand.java

License:Open Source License

public Object execute(ExecutionEvent event) throws ExecutionException {
    initializeSelection(event);/*ww w.j  a  va  2s . co  m*/

    if (selectedServer != null) {
        DockerFoundryApplicationModule cloudModule = getSelectedCloudAppModule();
        if (cloudModule != null) {
            int state = cloudModule.getState();
            // Based on property testers, this should already be started
            if (state == IServer.STATE_STARTED) {
                IURLProvider cloudServer = (IURLProvider) selectedServer.loadAdapter(IURLProvider.class, null);

                DockerFoundryServer cfs = (DockerFoundryServer) selectedServer
                        .loadAdapter(DockerFoundryServer.class, null);

                String contextRoot = null;
                if (cfs != null) {
                    // IModule[][] because IModule[] is the correct representation of module structure
                    IModule[][] launchables = cfs.getLaunchableModules(selectedModule);

                    if (launchables != null) {
                        if (launchables.length == 1) {
                            contextRoot = cfs.getLaunchableModuleContextRoot(launchables[0]);
                        } else if (launchables.length > 1) {

                            List<String> selectionOptions = new ArrayList<String>();
                            Map<String, String> index = new HashMap<String, String>();
                            for (int i = 0; i < launchables.length; i++) {
                                String option = ""; //$NON-NLS-1$
                                for (int j = 0; j < launchables[i].length; j++) {
                                    option += launchables[i][j].getName() + "/"; //$NON-NLS-1$
                                }
                                if (option.endsWith("/")) { //$NON-NLS-1$
                                    option = option.substring(0, option.length() - 1);
                                }
                                selectionOptions.add(option);
                                index.put(option, String.valueOf(i));
                            }

                            ElementListSelectionDialog dialog = new ElementListSelectionDialog(
                                    PlatformUI.getWorkbench().getDisplay().getActiveShell(),
                                    new LabelProvider());
                            dialog.setTitle(TITLE);
                            dialog.setMessage(DESCRIPTION);
                            dialog.setElements(selectionOptions.toArray());

                            if (dialog.open() != Window.OK) {
                                if (dialog.getReturnCode() == Window.CANCEL) {
                                    DockerFoundryPlugin.logWarning("User pressed cancel on selection dialog"); //$NON-NLS-1$
                                    return null;
                                }
                                DockerFoundryPlugin
                                        .logError(("Failed to open the Open Home Page selection dialog")); //$NON-NLS-1$
                                return null;
                            }

                            Object[] result = dialog.getResult();
                            contextRoot = cfs.getLaunchableModuleContextRoot(
                                    launchables[Integer.valueOf(index.get(result[0]))]);
                        }
                    }
                }

                try {
                    URL homePageUrl = cloudServer.getModuleRootURL(selectedModule);
                    if (contextRoot != null) {
                        homePageUrl = new URL(homePageUrl, contextRoot);
                    }

                    if (homePageUrl != null) {
                        CloudUiUtil.openUrl(homePageUrl.toExternalForm());
                    } else {
                        DockerFoundryPlugin.logError("homePageUrl is null, unable to launch the Home Page URL"); //$NON-NLS-1$
                        return null;
                    }
                } catch (Exception e) {
                    DockerFoundryPlugin.logError("Cannot launch the home page URL", e); //$NON-NLS-1$
                    return null;
                }
            }
        }
    }
    return null;
}

From source file:cn.ieclipse.adt.ext.helpers.ElementListSelector.java

License:Apache License

private void showSelectionDialog(Composite composite, String selectionMessage) {
    LabelProvider labelProvider = new LabelProvider();
    ElementListSelectionDialog dialog = new ElementListSelectionDialog(composite.getShell(), labelProvider);
    dialog.setElements(elements);/* ww  w  . ja va 2 s. c  om*/
    dialog.setIgnoreCase(true);
    dialog.setMessage(selectionMessage);
    dialog.setMultipleSelection(true);
    dialog.open();
    Object[] result = dialog.getResult();
    if (result != null) {
        for (Object object : result) {
            selectedElements.add((String) object);
        }
        list.removeAll();
        for (Object elem : selectedElements) {
            list.add(elem.toString());
        }
        list.update();
    }
}

From source file:cn.ieclipse.adt.ext.wizards.ElementTableSelector.java

License:Apache License

private void showSelectionDialog(Composite composite, String selectionMessage) {
    LabelProvider labelProvider = new LabelProvider();
    ElementListSelectionDialog dialog = new ElementListSelectionDialog(composite.getShell(), labelProvider);
    dialog.setElements(elements);//from w w w . j  av  a  2  s  .com
    dialog.setIgnoreCase(true);
    dialog.setMessage(selectionMessage);
    dialog.setMultipleSelection(true);
    dialog.open();
    Object[] result = dialog.getResult();
    if (result != null) {
        for (Object object : result) {
            addModel(new Model((String) object));
        }
        tv.refresh();
    }
}

From source file:com.amalto.workbench.editors.DataClusterDialog.java

License:Open Source License

private Composite createFirstLine(Composite parent) {
    Composite firstLine = new Composite(parent, SWT.NONE);
    firstLine.setLayout(new GridLayout(4, false));

    Label serverLabel = new Label(firstLine, SWT.NONE);
    serverLabel.setText(Messages.DataClusterDialog_1);
    serverLabel.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false, 1, 1));

    serverComboViewer = new ComboViewer(firstLine, SWT.DROP_DOWN | SWT.READ_ONLY);
    Combo combo = serverComboViewer.getCombo();
    GridData data = new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1);
    data.widthHint = 200;//from  w  w  w  . j  a  v  a 2  s.  co  m
    combo.setLayoutData(data);
    serverComboViewer.setLabelProvider(new LabelProvider() {

        @Override
        public String getText(Object element) {
            MDMServerDef serverDef = (MDMServerDef) element;
            return serverDef.getName() + " (" + serverDef.getHost() + ")"; //$NON-NLS-1$ //$NON-NLS-2$;
        }
    });
    serverComboViewer.setContentProvider(new ArrayContentProvider());

    serverComboViewer.setInput(getAllServerDefs());

    Label containerLabel = new Label(firstLine, SWT.NONE);
    containerLabel.setText(Messages.DataClusterDialog_2);
    containerLabel.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, true, false, 1, 1));

    containerComboViewer = new ComboViewer(firstLine, SWT.DROP_DOWN | SWT.READ_ONLY);
    Combo containerCombo = containerComboViewer.getCombo();
    GridData layoutData = new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1);
    layoutData.widthHint = 200;
    containerCombo.setLayoutData(layoutData);
    containerComboViewer.setLabelProvider(new LabelProvider() {

        @Override
        public String getText(Object element) {
            TreeObject treeObj = (TreeObject) element;

            return treeObj.getName();
        }
    });

    containerComboViewer.setContentProvider(new ArrayContentProvider());
    containerComboViewer.setInput(new TreeObject[0]);
    containerComboViewer.getCombo().setEnabled(false);

    return firstLine;
}

From source file:com.amalto.workbench.editors.MenuMainPage.java

License:Open Source License

@Override
protected void createCharacteristicsContent(FormToolkit toolkit, Composite mainComposite) {

    try {/* w w w . j  a va2 s . c om*/
        // description
        Label descriptionLabel = toolkit.createLabel(mainComposite, Messages.MenuMainPage_Description,
                SWT.NULL);
        descriptionLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, true, 1, 1));
        descriptionText = toolkit.createText(mainComposite, "", SWT.BORDER);//$NON-NLS-1$
        descriptionText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
        ((GridData) descriptionText.getLayoutData()).minimumHeight = 30;
        descriptionText.addModifyListener(new ModifyListener() {

            public void modifyText(ModifyEvent e) {
                if (refreshing) {
                    return;
                }

                markDirtyWithoutCommit();
            }
        });
        // Util.createCompDropTarget(descriptionText);
        // make the Page window a DropTarget - we need to dispose it
        windowTarget = new DropTarget(this.getPartControl(), DND.DROP_MOVE);
        windowTarget.setTransfer(new Transfer[] { TextTransfer.getInstance() });
        windowTarget.addDropListener(new DCDropTargetListener());

        Composite composite = toolkit.createComposite(mainComposite, SWT.BORDER);
        composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
        composite.setLayout(new GridLayout(1, false));

        menuTree = new TreeViewer(composite, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
        menuTree.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
        ((GridData) menuTree.getControl().getLayoutData()).heightHint = 150;

        menuTree.setContentProvider(new ITreeContentProvider() {

            public void dispose() {
            }

            public Object[] getChildren(Object parentElement) {
                if (parentElement instanceof TreeEntry) {
                    WSMenuEntry wsEntry = ((TreeEntry) parentElement).getWSMenuEntry();
                    if (wsEntry.getSubMenus() != null) {
                        TreeEntry[] children = new TreeEntry[wsEntry.getSubMenus().size()];
                        for (int i = 0; i < wsEntry.getSubMenus().size(); i++) {
                            children[i] = new TreeEntry((TreeEntry) parentElement,
                                    wsEntry.getSubMenus().get(i));
                        }
                        return children;
                    }
                    return null;
                }

                if (parentElement instanceof WSMenu) { // the root
                    java.util.List<WSMenuEntry> menuEntries = ((WSMenu) parentElement).getMenuEntries();
                    if (menuEntries != null) {
                        TreeEntry[] children = new TreeEntry[menuEntries.size()];
                        for (int i = 0; i < menuEntries.size(); i++) {
                            children[i] = new TreeEntry(null, menuEntries.get(i));
                        }
                        return children;
                    }
                    return null;
                }

                return null; // ??!!?
            }

            public Object[] getElements(Object inputElement) {
                return getChildren(inputElement);
            }

            public Object getParent(Object element) {
                return null;
            }

            public boolean hasChildren(Object element) {
                return ((getChildren(element) == null) || (getChildren(element).length > 0));
            }

            public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
            }
        });
        menuTree.setLabelProvider(new LabelProvider() {

            @Override
            public String getText(Object element) {
                WSMenuEntry wsMenuEntry = ((TreeEntry) element).getWSMenuEntry();
                StringBuffer label = new StringBuffer(wsMenuEntry.getId() + " - ");//$NON-NLS-1$

                for (WSMenuMenuEntriesDescriptions description : wsMenuEntry.getDescriptions()) {
                    label.append("[").append(description.getLanguage()).append(": ")//$NON-NLS-1$//$NON-NLS-2$
                            .append(description.getLabel()).append("] ");//$NON-NLS-1$
                }
                if (label.length() > 200) {
                    return label.substring(0, 197) + "..."; //$NON-NLS-1$
                }
                return label.toString();
            }

            @Override
            public Image getImage(Object element) {
                return ImageCache.getCreatedImage(EImage.MENU.getPath());
            }
        });

        menuTreeMgr = new MenuManager();
        menuTreeMgr.setRemoveAllWhenShown(true);
        menuTreeMgr.addMenuListener(new IMenuListener() {

            public void menuAboutToShow(IMenuManager manager) {
                IStructuredSelection selection = ((IStructuredSelection) menuTree.getSelection());
                if ((selection == null) || (selection.getFirstElement() == null)) {
                    manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
                    return;
                }
                // TreeEntry entry = (TreeEntry)selection.getFirstElement();
                menuTreeMgr.add(new TreeEntryEditAction(menuTree));
                menuTreeMgr.add(new TreeEntryAddAction(menuTree, LOCATION_BEFORE));
                menuTreeMgr.add(new TreeEntryAddAction(menuTree, LOCATION_AFTER));
                menuTreeMgr.add(new TreeEntryAddAction(menuTree, LOCATION_UNDER));
                menuTreeMgr.add(new TreeEntryDeleteAction(menuTree));
                menuTreeMgr.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
            }
        });
        menuTree.addDoubleClickListener(new IDoubleClickListener() {

            public void doubleClick(DoubleClickEvent event) {
                (new TreeEntryEditAction(menuTree)).run();
            }
        });
        Menu menu = menuTreeMgr.createContextMenu(menuTree.getControl());
        menuTree.getControl().setMenu(menu);
        getSite().registerContextMenu(menuTreeMgr, menuTree);

        refreshData();

    } catch (Exception e) {
        log.error(e.getMessage(), e);
    }

}

From source file:com.amazonaws.eclipse.core.ui.preferences.AwsAccountPreferencePageTab.java

License:Apache License

/**
 * Creates the account selection section.
 *///from   w w  w . ja  v  a  2  s  .co  m
private Composite createAccountSelector(final Composite parent) {
    Composite composite = new Composite(parent, SWT.NONE);
    composite.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
    composite.setLayout(new GridLayout(4, false));

    new Label(composite, SWT.READ_ONLY).setText("Default Profile: ");

    accountSelector = new ComboViewer(composite, SWT.DROP_DOWN | SWT.READ_ONLY);
    accountSelector.getCombo().setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

    // Use a List of AccountInfo objects as the data input for the combo
    // viewer
    accountSelector.setContentProvider(ArrayContentProvider.getInstance());
    accountSelector.setLabelProvider(new LabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof AccountInfo) {
                AccountInfo account = (AccountInfo) element;
                if (account.isDirty()) {
                    return "*" + account.getAccountName();
                } else {
                    return account.getAccountName();
                }
            }
            return super.getText(element);
        }
    });

    AccountInfo currentRegionAccount = accountInfoByIdentifier.get(currentRegionAccountId);
    // In some of the edge-cases, currentRegionAccount could be null.
    // e.g. a specific credential profile account is removed externally, but
    // the data in the preference store is not yet updated.
    if (currentRegionAccount == null) {
        currentRegionAccount = accountInfoByIdentifier.values().iterator().next();
        currentRegionAccountId = currentRegionAccount.getInternalAccountId();
    }

    final List<AccountInfo> allAccounts = new LinkedList<AccountInfo>(accountInfoByIdentifier.values());

    setUpAccountSelectorItems(allAccounts, currentRegionAccount);

    // Add selection listener to the account selector, so that all the
    // account info editors are notified of the newly selected AccountInfo
    // object.
    accountSelector.addSelectionChangedListener(new ISelectionChangedListener() {

        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            Object selectedObject = selection.getFirstElement();

            if (selectedObject instanceof AccountInfo) {
                AccountInfo accountInfo = (AccountInfo) selectedObject;
                accountChanged(accountInfo);
            }
        }

    });

    final Button addNewAccount = new Button(composite, SWT.PUSH);
    addNewAccount.setText("Add profile");
    deleteAccount = new Button(composite, SWT.PUSH);
    deleteAccount.setText("Remove profile");
    deleteAccount.setEnabled(allAccounts.size() > 1);

    defaultAccountExplanationLabel = new Label(composite, SWT.WRAP);
    defaultAccountExplanationLabel.setText(getDefaultAccountExplanationText());

    parentPrefPage.setItalicFont(defaultAccountExplanationLabel);

    GridData layoutData = new GridData(SWT.FILL, SWT.TOP, true, false);
    layoutData.horizontalSpan = 4;
    layoutData.widthHint = 200;
    defaultAccountExplanationLabel.setLayoutData(layoutData);

    addNewAccount.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            String newAccountId = UUID.randomUUID().toString();
            AccountInfo newAccountInfo = createNewProfileAccountInfo(newAccountId);

            String newAccountName = region == null ? "New Profile" : "New " + region.getName() + " Profile";
            newAccountInfo.setAccountName(newAccountName); // this will mark the AccountInfo object dirty

            accountInfoByIdentifier.put(newAccountId, newAccountInfo);

            setUpAccountSelectorItems(accountInfoByIdentifier.values(), newAccountInfo);

            for (AwsAccountPreferencePageTab tab : parentPrefPage.getAllAccountPreferencePageTabs()) {
                if (tab != AwsAccountPreferencePageTab.this) {
                    tab.refreshAccountSelectorItems();
                }
            }

            parentPrefPage.updatePageValidationOfAllTabs();
        }
    });

    deleteAccount.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            accountInfoToBeDeleted.add(accountInfoByIdentifier.get(currentRegionAccountId));
            accountInfoByIdentifier.remove(currentRegionAccountId);

            // If all the accounts are deleted, create a temporary
            // AccountInfo object
            if (accountInfoByIdentifier.isEmpty()) {
                String newAccountId = UUID.randomUUID().toString();
                AccountInfo newAccountInfo = createNewProfileAccountInfo(newAccountId);

                // Account name : default-region-id
                newAccountInfo.setAccountName(getRegionAccountDefaultName());
                accountInfoByIdentifier.put(newAccountId, newAccountInfo);
            }

            // Use the first AccountInfo as the next selected account
            AccountInfo nextDefaultAccount = accountInfoByIdentifier.values().iterator().next();

            setUpAccountSelectorItems(accountInfoByIdentifier.values(), nextDefaultAccount);

            for (AwsAccountPreferencePageTab tab : parentPrefPage.getAllAccountPreferencePageTabs()) {
                if (tab != AwsAccountPreferencePageTab.this) {
                    tab.refreshAccountSelectorItems();
                }
            }

            parentPrefPage.updatePageValidationOfAllTabs();
        }
    });

    accountSelector.getCombo().addModifyListener(new ModifyListener() {

        public void modifyText(ModifyEvent arg0) {
            if (accountSelector.getCombo().getItemCount() > 1) {
                deleteAccount.setEnabled(true);
            } else {
                deleteAccount.setEnabled(false);
            }

        }
    });

    return composite;
}