Example usage for com.vaadin.server ThemeResource ThemeResource

List of usage examples for com.vaadin.server ThemeResource ThemeResource

Introduction

In this page you can find the example usage for com.vaadin.server ThemeResource ThemeResource.

Prototype

public ThemeResource(String resourceId) 

Source Link

Document

Creates a resource.

Usage

From source file:org.lunifera.runtime.web.vaadin.components.fields.BeanReferenceField.java

License:Open Source License

@SuppressWarnings({ "rawtypes", "unchecked" })
@Override/*from www  . j a  v  a  2  s.  com*/
protected Component initContent() {

    HorizontalLayout root = new HorizontalLayout();
    root.addStyleName("l-beansearchfield");
    comboBox = new CustomComboBox();
    comboBox.setImmediate(true);
    comboBox.setNullSelectionAllowed(false);
    comboBox.setInvalidAllowed(false);

    BeanServiceLazyLoadingContainer container = new BeanServiceLazyLoadingContainer(searchService, type,
            sharedState);
    // add the passed container filter
    if (filter != null) {
        container.addContainerFilter(filter);
    }
    comboBox.setContainerDataSource(container);
    comboBox.setFilteringMode(FilteringMode.CONTAINS);

    if (itemCaptionPropertyId != null) {
        comboBox.setItemCaptionPropertyId(itemCaptionPropertyId);
    }

    if (itemIconPropertyId != null) {
        comboBox.setItemIconPropertyId(itemIconPropertyId);
    }

    NativeButton searchButton = new NativeButton();
    searchButton.addClickListener(new Button.ClickListener() {
        @Override
        public void buttonClick(ClickEvent event) {
            openSearchDialog();
        }
    });
    searchButton.setWidth("26px");
    searchButton.setIcon(new ThemeResource("icons/SearchButton.png"));

    root.addComponent(comboBox);
    root.addComponent(searchButton);

    // Create the property
    comboBox.setPropertyDataSource(property);

    // Create the bindings
    // valueBinding =
    // dbc.bindValue(VaadinObservables.observeValue(comboBox),
    // PojoObservables.observeValue(property, "value"));

    return root;
}

From source file:org.metawidget.example.vaadin.addressbook.AddressBookUI.java

License:BSD License

public AddressBookUI() {

    // Model//from  w  w w .  ja v  a 2  s . c  om

    mContactSearch = new ContactSearch();
    mContactsController = new ContactsController();

    mModel = new TableDataSource<Contact>(Contact.class, mContactsController.getAllByExample(mContactSearch),
            "class", "fullname", "communications") {

        @Override
        protected Class<?> getColumnType(String column) {

            if ("class".equals(column)) {
                return ThemeResource.class;
            }

            if ("communications".equals(column)) {
                return String.class;
            }

            return super.getColumnType(column);
        }

        @Override
        protected Object getValue(Contact contact, String column) {

            Object value = super.getValue(contact, column);

            if (value instanceof Class<?>) {

                if (value.equals(BusinessContact.class)) {
                    return new ThemeResource("../addressbook/img/business-small.gif");
                }

                return new ThemeResource("../addressbook/img/personal-small.gif");
            }

            if ("communications".equals(column)) {
                return CollectionUtils.toString((Collection<?>) value);
            }

            return value;
        }
    };

    // Page body

    VerticalLayout pagebody = new VerticalLayout();

    // Search and result sections

    pagebody.addComponent(createSearchSection());
    pagebody.addComponent(createResultsSection());

    mContent = new CustomLayout("addressbook");

    ((CustomLayout) mContent).addComponent(pagebody, "pagebody");
}

From source file:org.opencms.ui.components.CmsResourceTable.java

License:Open Source License

/**
 * Static helper method to initialize the 'standard' properties of a data item from a given resource.<p>
 * @param resourceItem the resource item to fill
 * @param cms the CMS context/*  ww w  .  j a va2 s  . c  o m*/
 * @param resource the resource
 * @param messages the message bundle
 * @param locale the locale
 */
public static void fillItemDefault(Item resourceItem, CmsObject cms, CmsResource resource, CmsMessages messages,
        Locale locale) {

    if (resource == null) {
        LOG.error("Error rendering item for 'null' resource");
        return;
    }

    if (resourceItem == null) {
        LOG.error("Error rendering 'null' item for resource " + resource.getRootPath());
        return;
    }
    if (cms == null) {
        cms = A_CmsUI.getCmsObject();
        LOG.warn("CmsObject was 'null', using thread local CmsObject");
    }
    CmsResourceUtil resUtil = new CmsResourceUtil(cms, resource);
    Map<String, CmsProperty> resourceProps = null;
    try {
        List<CmsProperty> props = cms.readPropertyObjects(resource, false);
        resourceProps = new HashMap<String, CmsProperty>();
        for (CmsProperty prop : props) {
            resourceProps.put(prop.getName(), prop);
        }
    } catch (CmsException e1) {
        LOG.debug("Unable to read properties for resource '" + resource.getRootPath() + "'.", e1);
    }
    I_CmsResourceType type = OpenCms.getResourceManager().getResourceType(resource);
    if (resourceItem.getItemProperty(PROPERTY_TYPE_ICON) != null) {
        resourceItem.getItemProperty(PROPERTY_TYPE_ICON)
                .setValue(new CmsResourceIcon(resUtil, resource.getState(), true));
    }

    if (resourceItem.getItemProperty(PROPERTY_PROJECT) != null) {
        Image projectFlag = null;
        switch (resUtil.getProjectState().getMode()) {
        case 1:
            projectFlag = new Image(resUtil.getLockedInProjectName(),
                    new ThemeResource(OpenCmsTheme.PROJECT_CURRENT_PATH));
            break;
        case 2:
            projectFlag = new Image(resUtil.getLockedInProjectName(),
                    new ThemeResource(OpenCmsTheme.PROJECT_OTHER_PATH));
            break;
        case 5:
            projectFlag = new Image(resUtil.getLockedInProjectName(),
                    new ThemeResource(OpenCmsTheme.PROJECT_PUBLISH_PATH));
            break;
        default:
        }
        if (projectFlag != null) {
            projectFlag.setDescription(resUtil.getLockedInProjectName());
        }
        resourceItem.getItemProperty(PROPERTY_PROJECT).setValue(projectFlag);
    }

    if (resourceItem.getItemProperty(PROPERTY_INSIDE_PROJECT) != null) {
        resourceItem.getItemProperty(PROPERTY_INSIDE_PROJECT)
                .setValue(Boolean.valueOf(resUtil.isInsideProject()));
    }

    if (resourceItem.getItemProperty(PROPERTY_RELEASED_NOT_EXPIRED) != null) {
        resourceItem.getItemProperty(PROPERTY_RELEASED_NOT_EXPIRED)
                .setValue(Boolean.valueOf(resUtil.isReleasedAndNotExpired()));
    }

    if (resourceItem.getItemProperty(PROPERTY_RESOURCE_NAME) != null) {
        resourceItem.getItemProperty(PROPERTY_RESOURCE_NAME).setValue(resource.getName());
    }

    if (resourceItem.getItemProperty(PROPERTY_SITE_PATH) != null) {
        resourceItem.getItemProperty(PROPERTY_SITE_PATH).setValue(cms.getSitePath(resource));
    }

    if ((resourceItem.getItemProperty(PROPERTY_TITLE) != null) && (resourceProps != null)) {
        resourceItem.getItemProperty(PROPERTY_TITLE)
                .setValue(resourceProps.containsKey(CmsPropertyDefinition.PROPERTY_TITLE)
                        ? resourceProps.get(CmsPropertyDefinition.PROPERTY_TITLE).getValue()
                        : "");
    }
    boolean inNavigation = false;
    if ((resourceItem.getItemProperty(PROPERTY_NAVIGATION_TEXT) != null) && (resourceProps != null)) {
        resourceItem.getItemProperty(PROPERTY_NAVIGATION_TEXT)
                .setValue(resourceProps.containsKey(CmsPropertyDefinition.PROPERTY_NAVTEXT)
                        ? resourceProps.get(CmsPropertyDefinition.PROPERTY_NAVTEXT).getValue()
                        : "");
        inNavigation = resourceProps.containsKey(CmsPropertyDefinition.PROPERTY_NAVTEXT);
    }

    if ((resourceItem.getItemProperty(PROPERTY_NAVIGATION_POSITION) != null) && (resourceProps != null)) {
        try {
            Float navPos = resourceProps.containsKey(CmsPropertyDefinition.PROPERTY_NAVPOS)
                    ? Float.valueOf(resourceProps.get(CmsPropertyDefinition.PROPERTY_NAVPOS).getValue())
                    : (inNavigation ? Float.valueOf(Float.MAX_VALUE) : null);
            resourceItem.getItemProperty(PROPERTY_NAVIGATION_POSITION).setValue(navPos);
            inNavigation = navPos != null;
        } catch (Exception e) {
            LOG.debug("Error evaluating navPos property", e);
        }
    }

    if (resourceItem.getItemProperty(PROPERTY_IN_NAVIGATION) != null) {
        if (inNavigation && (resourceProps != null)
                && resourceProps.containsKey(CmsPropertyDefinition.PROPERTY_NAVINFO)
                && CmsClientSitemapEntry.HIDDEN_NAVIGATION_ENTRY
                        .equals(resourceProps.get(CmsPropertyDefinition.PROPERTY_NAVINFO).getValue())) {
            inNavigation = false;
        }
        resourceItem.getItemProperty(PROPERTY_IN_NAVIGATION).setValue(Boolean.valueOf(inNavigation));
    }

    if ((resourceItem.getItemProperty(PROPERTY_COPYRIGHT) != null) && (resourceProps != null)) {
        resourceItem.getItemProperty(PROPERTY_COPYRIGHT)
                .setValue(resourceProps.containsKey(CmsPropertyDefinition.PROPERTY_COPYRIGHT)
                        ? resourceProps.get(CmsPropertyDefinition.PROPERTY_COPYRIGHT).getValue()
                        : "");
    }

    if ((resourceItem.getItemProperty(PROPERTY_CACHE) != null) && (resourceProps != null)) {
        resourceItem.getItemProperty(PROPERTY_CACHE)
                .setValue(resourceProps.containsKey(CmsPropertyDefinition.PROPERTY_CACHE)
                        ? resourceProps.get(CmsPropertyDefinition.PROPERTY_CACHE).getValue()
                        : "");
    }

    if (resourceItem.getItemProperty(PROPERTY_RESOURCE_TYPE) != null) {
        resourceItem.getItemProperty(PROPERTY_RESOURCE_TYPE)
                .setValue(CmsWorkplaceMessages.getResourceTypeName(locale, type.getTypeName()));
    }

    if (resourceItem.getItemProperty(PROPERTY_IS_FOLDER) != null) {
        resourceItem.getItemProperty(PROPERTY_IS_FOLDER).setValue(Boolean.valueOf(resource.isFolder()));
    }

    if (resourceItem.getItemProperty(PROPERTY_SIZE) != null) {
        if (resource.isFile()) {
            resourceItem.getItemProperty(PROPERTY_SIZE).setValue(Integer.valueOf(resource.getLength()));
        }
    }

    if (resourceItem.getItemProperty(PROPERTY_PERMISSIONS) != null) {
        resourceItem.getItemProperty(PROPERTY_PERMISSIONS).setValue(resUtil.getPermissionString());
    }

    if (resourceItem.getItemProperty(PROPERTY_DATE_MODIFIED) != null) {
        resourceItem.getItemProperty(PROPERTY_DATE_MODIFIED)
                .setValue(Long.valueOf(resource.getDateLastModified()));
    }

    if (resourceItem.getItemProperty(PROPERTY_USER_MODIFIED) != null) {
        resourceItem.getItemProperty(PROPERTY_USER_MODIFIED).setValue(resUtil.getUserLastModified());
    }

    if (resourceItem.getItemProperty(PROPERTY_DATE_CREATED) != null) {
        resourceItem.getItemProperty(PROPERTY_DATE_CREATED).setValue(Long.valueOf(resource.getDateCreated()));
    }

    if (resourceItem.getItemProperty(PROPERTY_USER_CREATED) != null) {
        resourceItem.getItemProperty(PROPERTY_USER_CREATED).setValue(resUtil.getUserCreated());
    }

    if (resourceItem.getItemProperty(PROPERTY_DATE_RELEASED) != null) {
        long release = resource.getDateReleased();
        if (release != CmsResource.DATE_RELEASED_DEFAULT) {
            resourceItem.getItemProperty(PROPERTY_DATE_RELEASED).setValue(Long.valueOf(release));
        }
    }

    if (resourceItem.getItemProperty(PROPERTY_DATE_EXPIRED) != null) {
        long expire = resource.getDateExpired();
        if (expire != CmsResource.DATE_EXPIRED_DEFAULT) {
            resourceItem.getItemProperty(PROPERTY_DATE_EXPIRED).setValue(Long.valueOf(expire));
        }
    }

    if (resourceItem.getItemProperty(PROPERTY_STATE_NAME) != null) {
        resourceItem.getItemProperty(PROPERTY_STATE_NAME).setValue(resUtil.getStateName());
    }

    if (resourceItem.getItemProperty(PROPERTY_STATE) != null) {
        resourceItem.getItemProperty(PROPERTY_STATE).setValue(resource.getState());
    }

    if (resourceItem.getItemProperty(PROPERTY_USER_LOCKED) != null) {
        resourceItem.getItemProperty(PROPERTY_USER_LOCKED).setValue(resUtil.getLockedByName());
    }
}

From source file:org.opennms.features.jmxconfiggenerator.webui.ui.IconProvider.java

License:Open Source License

public static ThemeResource getIcon(String icon) {
    return new ThemeResource(WORK_FOLDER + icon);
}

From source file:org.opennms.features.topology.app.internal.TopologyUI.java

License:Open Source License

private Component createMapLayout() {
    final Property<Double> scale = m_graphContainer.getScaleProperty();

    m_lastUpdatedTimeLabel = new LastUpdatedLabel();
    m_lastUpdatedTimeLabel.setImmediate(true);

    m_zoomLevelLabel.setHeight(20, Unit.PIXELS);
    m_zoomLevelLabel.setWidth(22, Unit.PIXELS);
    m_zoomLevelLabel.addStyleName("center-text");
    m_zoomLevelLabel.addTextChangeListener(new FieldEvents.TextChangeListener() {
        @Override/*w ww  . j  av a 2 s.  com*/
        public void textChange(FieldEvents.TextChangeEvent event) {
            try {
                int zoomLevel = Integer.parseInt(event.getText());
                setSemanticZoomLevel(zoomLevel);
            } catch (NumberFormatException e) {
                setSemanticZoomLevel(m_graphContainer.getSemanticZoomLevel());
            }

        }
    });

    m_topologyComponent = new TopologyComponent(m_graphContainer, m_iconRepositoryManager, this);
    m_topologyComponent.setSizeFull();
    m_topologyComponent.addMenuItemStateListener(this);
    m_topologyComponent.addVertexUpdateListener(this);

    final Slider slider = new Slider(0, 1);
    slider.setPropertyDataSource(scale);
    slider.setResolution(1);
    slider.setHeight("200px");
    slider.setOrientation(SliderOrientation.VERTICAL);

    slider.setImmediate(true);

    final NativeButton showFocusVerticesBtn = new NativeButton(FontAwesomeIcons.Icon.eye_open.variant());
    showFocusVerticesBtn.setDescription("Toggle Highlight Focus Nodes");
    showFocusVerticesBtn.setHtmlContentAllowed(true);
    showFocusVerticesBtn.addClickListener(new ClickListener() {
        @Override
        public void buttonClick(ClickEvent event) {
            if (showFocusVerticesBtn.getCaption().equals(FontAwesomeIcons.Icon.eye_close.variant())) {
                showFocusVerticesBtn.setCaption(FontAwesomeIcons.Icon.eye_open.variant());
            } else {
                showFocusVerticesBtn.setCaption(FontAwesomeIcons.Icon.eye_close.variant());
            }
            m_topologyComponent.getState()
                    .setHighlightFocus(!m_topologyComponent.getState().isHighlightFocus());
            m_topologyComponent.updateGraph();
        }
    });

    final NativeButton magnifyBtn = new NativeButton();
    magnifyBtn.setHtmlContentAllowed(true);
    magnifyBtn.setCaption("<i class=\"" + FontAwesomeIcons.Icon.zoom_in.stylename() + "\" ></i>");
    magnifyBtn.setStyleName("icon-button");
    magnifyBtn.addClickListener(new ClickListener() {
        @Override
        public void buttonClick(ClickEvent event) {
            if (slider.getValue() < 1) {
                slider.setValue(Math.min(1, slider.getValue() + 0.25));
            }
        }
    });

    final NativeButton demagnifyBtn = new NativeButton();
    demagnifyBtn.setHtmlContentAllowed(true);
    demagnifyBtn.setCaption("<i class=\"" + FontAwesomeIcons.Icon.zoom_out.stylename() + "\" ></i>");
    demagnifyBtn.setStyleName("icon-button");
    demagnifyBtn.addClickListener(new ClickListener() {
        @Override
        public void buttonClick(ClickEvent event) {
            if (slider.getValue() != 0) {
                slider.setValue(Math.max(0, slider.getValue() - 0.25));
            }
        }
    });

    VerticalLayout sliderLayout = new VerticalLayout();
    sliderLayout.setDefaultComponentAlignment(Alignment.MIDDLE_CENTER);
    sliderLayout.addComponent(magnifyBtn);
    sliderLayout.addComponent(slider);
    sliderLayout.addComponent(demagnifyBtn);

    m_szlOutBtn = new Button();
    m_szlOutBtn.setHtmlContentAllowed(true);
    m_szlOutBtn.setCaption(FontAwesomeIcons.Icon.arrow_down.variant());
    m_szlOutBtn.setDescription("Collapse Semantic Zoom Level");
    m_szlOutBtn.setEnabled(m_graphContainer.getSemanticZoomLevel() > 0);
    m_szlOutBtn.addClickListener(new ClickListener() {
        @Override
        public void buttonClick(ClickEvent event) {
            int szl = m_graphContainer.getSemanticZoomLevel();
            if (szl > 0) {
                szl--;
                setSemanticZoomLevel(szl);
                saveHistory();
            }
        }
    });

    final Button szlInBtn = new Button();
    szlInBtn.setHtmlContentAllowed(true);
    szlInBtn.setCaption(FontAwesomeIcons.Icon.arrow_up.variant());
    szlInBtn.setDescription("Expand Semantic Zoom Level");
    szlInBtn.addClickListener(new ClickListener() {

        @Override
        public void buttonClick(ClickEvent event) {
            int szl = m_graphContainer.getSemanticZoomLevel();
            szl++;
            setSemanticZoomLevel(szl);
            saveHistory();
        }
    });

    m_panBtn = new Button();
    m_panBtn.setIcon(FontAwesome.ARROWS);
    m_panBtn.setDescription("Pan Tool");
    m_panBtn.setStyleName("toolbar-button down");

    m_selectBtn = new Button();
    m_selectBtn.setIcon(new ThemeResource("images/selection.png"));
    m_selectBtn.setDescription("Selection Tool");
    m_selectBtn.setStyleName("toolbar-button");
    m_selectBtn.addClickListener(new ClickListener() {

        @Override
        public void buttonClick(ClickEvent event) {
            m_selectBtn.setStyleName("toolbar-button down");
            m_panBtn.setStyleName("toolbar-button");
            m_topologyComponent.setActiveTool("select");
        }
    });

    m_panBtn.addClickListener(new ClickListener() {

        @Override
        public void buttonClick(ClickEvent event) {
            m_panBtn.setStyleName("toolbar-button down");
            m_selectBtn.setStyleName("toolbar-button");
            m_topologyComponent.setActiveTool("pan");
        }
    });

    final Button historyBackBtn = new Button(FontAwesomeIcons.Icon.arrow_left.variant());
    historyBackBtn.setHtmlContentAllowed(true);
    historyBackBtn.setDescription("Click to go back");
    historyBackBtn.addClickListener(new ClickListener() {
        @Override
        public void buttonClick(ClickEvent event) {
            com.vaadin.ui.JavaScript.getCurrent().execute("window.history.back()");
        }
    });

    final Button historyForwardBtn = new Button(FontAwesomeIcons.Icon.arrow_right.variant());
    historyForwardBtn.setHtmlContentAllowed(true);
    historyForwardBtn.setDescription("Click to go forward");
    historyForwardBtn.addClickListener(new ClickListener() {
        @Override
        public void buttonClick(ClickEvent event) {
            com.vaadin.ui.JavaScript.getCurrent().execute("window.history.forward()");
        }
    });

    m_searchBox = new SearchBox(m_serviceManager, new CommandManager.DefaultOperationContext(this,
            m_graphContainer, OperationContext.DisplayLocation.SEARCH));

    //History Button Layout
    HorizontalLayout historyButtonLayout = new HorizontalLayout();
    historyButtonLayout.setSpacing(true);
    historyButtonLayout.addComponent(historyBackBtn);
    historyButtonLayout.addComponent(historyForwardBtn);

    //Semantic Controls Layout
    HorizontalLayout semanticLayout = new HorizontalLayout();
    semanticLayout.setSpacing(true);
    semanticLayout.addComponent(szlInBtn);
    semanticLayout.addComponent(m_zoomLevelLabel);
    semanticLayout.addComponent(m_szlOutBtn);
    semanticLayout.setComponentAlignment(m_zoomLevelLabel, Alignment.MIDDLE_CENTER);

    VerticalLayout historyCtrlLayout = new VerticalLayout();
    historyCtrlLayout.setDefaultComponentAlignment(Alignment.MIDDLE_CENTER);
    historyCtrlLayout.addComponent(historyButtonLayout);

    HorizontalLayout controlLayout = new HorizontalLayout();
    controlLayout.setDefaultComponentAlignment(Alignment.MIDDLE_CENTER);
    controlLayout.addComponent(m_panBtn);
    controlLayout.addComponent(m_selectBtn);

    VerticalLayout semanticCtrlLayout = new VerticalLayout();
    semanticCtrlLayout.setDefaultComponentAlignment(Alignment.MIDDLE_CENTER);
    semanticCtrlLayout.addComponent(semanticLayout);

    HorizontalLayout locationToolLayout = createLocationToolLayout();

    //Vertical Layout for all tools on right side
    VerticalLayout toollayout = new VerticalLayout();
    toollayout.setDefaultComponentAlignment(Alignment.MIDDLE_CENTER);
    toollayout.setSpacing(true);

    toollayout.addComponent(historyCtrlLayout);
    toollayout.addComponent(locationToolLayout);
    toollayout.addComponent(showFocusVerticesBtn);
    toollayout.addComponent(sliderLayout);
    toollayout.addComponent(controlLayout);
    toollayout.addComponent(semanticCtrlLayout);

    AbsoluteLayout mapLayout = new AbsoluteLayout();
    mapLayout.addComponent(m_topologyComponent, "top:0px; left: 0px; right: 0px; bottom: 0px;");
    mapLayout.addComponent(m_lastUpdatedTimeLabel, "top: 5px; right: 10px;");
    mapLayout.addComponent(toollayout, "top: 25px; right: 10px;");
    mapLayout.setSizeFull();

    m_infoPanel = new InfoPanel(m_searchBox, mapLayout);
    return m_infoPanel;
}

From source file:org.opennms.features.vaadin.dashboard.config.ui.DashletSpecEditor.java

License:Open Source License

/**
 * Constructor for the DashletSpecEditor.
 *
 * @param wallboardEditor the {@link WallboardEditor} wallboard editor this editor belongs to
 * @param dashletSelector the {@link DashletSelector} used to query available {@link DashletFactory} instances
 * @param dashletSpec     the associated {@link DashletSpec} instance
 *//*  w ww  . j  ava2 s.c  o  m*/
public DashletSpecEditor(WallboardEditor wallboardEditor, DashletSelector dashletSelector,
        DashletSpec dashletSpec) {
    /**
     * Setting the member fields
     */
    this.m_wallboardEditor = wallboardEditor;
    this.m_dashletSpec = dashletSpec;
    this.m_dashletSelector = dashletSelector;

    /**
     * Setting defaults
     */

    DashletFactory dashletFactory = dashletSelector.getDashletFactoryForName(dashletSpec.getDashletName());

    final Map<String, String> requiredParameters = dashletFactory.getRequiredParameters();

    for (Map.Entry<String, String> entry : requiredParameters.entrySet()) {
        if (!dashletSpec.getParameters().containsKey(entry.getKey())) {
            dashletSpec.getParameters().put(entry.getKey(), requiredParameters.get(entry.getKey()));
        }
    }

    /**
     * Setting up this component with size and layout
     */
    setWidth(100.0f, Unit.PERCENTAGE);

    GridLayout gridLayout = new GridLayout();
    gridLayout.setColumns(6);
    gridLayout.setRows(1);
    gridLayout.setMargin(true);

    /**
     * Priority field setup, layout and adding listener and validator
     */
    final TextField priorityField = new TextField();
    priorityField.setValue(String.valueOf(dashletSpec.getPriority()));
    priorityField.setImmediate(true);
    priorityField.setCaption("Priority");
    priorityField.setDescription("Priority of this dashlet");

    priorityField.addValidator(new AbstractStringValidator("Only numbers allowed here") {
        @Override
        protected boolean isValidValue(String s) {
            try {
                Integer.parseInt(s);
            } catch (NumberFormatException numberFormatException) {
                return false;
            }
            return true;
        }
    });

    priorityField.addValueChangeListener(new Property.ValueChangeListener() {
        public void valueChange(Property.ValueChangeEvent valueChangeEvent) {
            if (priorityField.isValid()) {
                m_dashletSpec.setPriority(Integer.valueOf((String) valueChangeEvent.getProperty().getValue()));
                WallboardProvider.getInstance().save();
                ((WallboardConfigUI) getUI()).notifyMessage("Data saved", "Priority");
            }
        }
    });

    /**
     * Boost priority field setup, layout and adding listener and validator
     */
    final TextField boostPriorityField = new TextField();
    boostPriorityField.setValue(String.valueOf(dashletSpec.getBoostPriority()));
    boostPriorityField.setImmediate(true);
    boostPriorityField.setCaption("Boost-Priority");
    boostPriorityField.setDescription("Boost priority of this dashlet");

    boostPriorityField.addValidator(new AbstractStringValidator("Only numbers allowed here") {
        @Override
        protected boolean isValidValue(String s) {
            try {
                Integer.parseInt(s);
            } catch (NumberFormatException numberFormatException) {
                return false;
            }
            return true;
        }
    });

    boostPriorityField.addValueChangeListener(new Property.ValueChangeListener() {
        public void valueChange(Property.ValueChangeEvent valueChangeEvent) {
            if (boostPriorityField.isValid()) {
                m_dashletSpec
                        .setBoostPriority(Integer.valueOf((String) valueChangeEvent.getProperty().getValue()));
                WallboardProvider.getInstance().save();
                ((WallboardConfigUI) getUI()).notifyMessage("Data saved", "Priority");
            }
        }
    });

    /**
     * Duration field setup, layout and adding listener and validator
     */
    final TextField durationField = new TextField();
    durationField.setValue(String.valueOf(dashletSpec.getDuration()));
    durationField.setImmediate(true);
    durationField.setCaption("Duration");
    durationField.setDescription("Duration for this dashlet");

    durationField.addValidator(new AbstractStringValidator("Only numbers allowed here") {
        @Override
        protected boolean isValidValue(String s) {
            try {
                Integer.parseInt(s);
            } catch (NumberFormatException numberFormatException) {
                return false;
            }
            return true;
        }
    });

    durationField.addValueChangeListener(new Property.ValueChangeListener() {
        public void valueChange(Property.ValueChangeEvent valueChangeEvent) {
            if (durationField.isValid()) {
                m_dashletSpec.setDuration(Integer.valueOf((String) valueChangeEvent.getProperty().getValue()));
                WallboardProvider.getInstance().save();
                ((WallboardConfigUI) getUI()).notifyMessage("Data saved", "Duration");
            }
        }
    });

    /**
     * Boost duration field setup, layout and adding listener and validator
     */
    final TextField boostDurationField = new TextField();
    boostDurationField.setValue(String.valueOf(dashletSpec.getBoostDuration()));
    boostDurationField.setImmediate(true);
    boostDurationField.setCaption("Boost-Duration");
    boostDurationField.setDescription("Boost duration for this dashlet");

    boostDurationField.addValidator(new AbstractStringValidator("Only numbers allowed here") {
        @Override
        protected boolean isValidValue(String s) {
            try {
                Integer.parseInt(s);
            } catch (NumberFormatException numberFormatException) {
                return false;
            }
            return true;
        }
    });

    boostDurationField.addValueChangeListener(new Property.ValueChangeListener() {
        public void valueChange(Property.ValueChangeEvent valueChangeEvent) {
            if (boostDurationField.isValid()) {
                m_dashletSpec
                        .setBoostDuration(Integer.valueOf((String) valueChangeEvent.getProperty().getValue()));
                WallboardProvider.getInstance().save();
                ((WallboardConfigUI) getUI()).notifyMessage("Data saved", "Duration");
            }
        }
    });

    boolean boostable = m_dashletSelector.getDashletFactoryForName(m_dashletSpec.getDashletName())
            .isBoostable();

    boostPriorityField.setEnabled(boostable);
    boostDurationField.setEnabled(boostable);

    /**
     * Setting up the dashlet selection
     */

    m_dashletSelect = new NativeSelect();

    m_dashletSelect.setCaption("Dashlet");

    updateDashletSelection(dashletSelector.getDashletFactoryList());

    m_dashletSelect.setImmediate(true);
    m_dashletSelect.setNewItemsAllowed(false);
    m_dashletSelect.setNullSelectionItemId("Undefined");
    m_dashletSelect.setNullSelectionAllowed(false);
    m_dashletSelect.select(dashletSpec.getDashletName());
    m_dashletSelect.setDescription("Dashlet selection");

    m_dashletSelect.addValueChangeListener(new Property.ValueChangeListener() {
        public void valueChange(Property.ValueChangeEvent valueChangeEvent) {
            if (m_savingDisabled) {
                return;
            }

            if (valueChangeEvent.getProperty().getValue() == null) {
                m_dashletSpec.setDashletName("Undefined");
            } else {
                m_dashletSpec.setDashletName(valueChangeEvent.getProperty().getValue().toString());
                m_dashletSelect.removeItem("Undefined");
            }

            m_dashletSpec.getParameters().clear();

            Map<String, String> requiredParameters = m_dashletSelector
                    .getDashletFactoryForName(m_dashletSpec.getDashletName()).getRequiredParameters();

            for (Map.Entry<String, String> entry : requiredParameters.entrySet()) {
                m_dashletSpec.getParameters().put(entry.getKey(), entry.getValue());
            }

            m_propertiesButton.setEnabled(requiredParameters.size() > 0);

            boolean boostable = m_dashletSelector.getDashletFactoryForName(m_dashletSpec.getDashletName())
                    .isBoostable();

            boostPriorityField.setEnabled(boostable);
            boostDurationField.setEnabled(boostable);

            WallboardProvider.getInstance().save();
            ((WallboardConfigUI) getUI()).notifyMessage("Data saved", "Dashlet");
        }
    });

    m_titleField = new TextField();
    m_titleField.setValue(dashletSpec.getTitle());
    m_titleField.setImmediate(true);
    m_titleField.setCaption("Title");
    m_titleField.setDescription("Title for this dashlet instance");

    m_titleField.addValueChangeListener(new Property.ValueChangeListener() {
        public void valueChange(Property.ValueChangeEvent valueChangeEvent) {
            m_dashletSpec.setTitle((String) valueChangeEvent.getProperty().getValue());
            WallboardProvider.getInstance().save();
            ((WallboardConfigUI) getUI()).notifyMessage("Data saved", "Title");
        }
    });

    FormLayout f1 = new FormLayout();
    f1.addComponent(m_dashletSelect);
    f1.addComponent(m_titleField);

    /**
     * Adding the required input fields and buttons to several {@link FormLayout} instances for better layout.
     */
    FormLayout f2 = new FormLayout();
    f2.addComponent(priorityField);
    f2.addComponent(durationField);

    FormLayout f3 = new FormLayout();
    f3.addComponent(boostPriorityField);
    f3.addComponent(boostDurationField);

    /**
     * Adding the properties button...
     */
    m_propertiesButton = new Button("Properties");

    m_propertiesButton.addClickListener(new Button.ClickListener() {
        @Override
        public void buttonClick(Button.ClickEvent clickEvent) {
            DashletConfigurationWindow configurationWindow = m_dashletSelector
                    .getDashletFactoryForName(m_dashletSpec.getDashletName())
                    .configurationWindow(m_dashletSpec);
            getUI().addWindow(configurationWindow);
        }
    });

    m_propertiesButton.setEnabled(m_dashletSelector.getDashletFactoryForName(m_dashletSpec.getDashletName())
            .getRequiredParameters().size() > 0);

    m_propertiesButton.setStyleName("small");
    m_propertiesButton.setDescription("Open properties dialog for this dashlet");

    /**
     * ...and the remove button
     */
    Button removeButton = new Button("Remove");
    removeButton.setDescription("Remove this dashlet entry");

    FormLayout f4 = new FormLayout();
    f4.addComponent(m_propertiesButton);
    f4.addComponent(removeButton);

    removeButton.addClickListener(new Button.ClickListener() {
        public void buttonClick(Button.ClickEvent clickEvent) {
            m_wallboardEditor.removeDashletSpecEditor(DashletSpecEditor.this);
        }
    });

    removeButton.setStyleName("small");

    Button upButton = new Button();
    upButton.setStyleName("small");
    upButton.setIcon(new ThemeResource("../runo/icons/16/arrow-up.png"));
    upButton.setDescription("Move this a dashlet entry one position up");

    Button downButton = new Button();
    downButton.setStyleName("small");
    downButton.setIcon(new ThemeResource("../runo/icons/16/arrow-down.png"));
    downButton.setDescription("Move this a dashlet entry one position down");

    FormLayout f5 = new FormLayout();
    f5.addComponent(upButton);
    f5.addComponent(downButton);

    Button previewButton = new Button("Preview");
    previewButton.setStyleName("small");
    previewButton.setDescription("Preview this single dashlet entry");

    Wallboard wallboard = new Wallboard();
    wallboard.getDashletSpecs().add(m_dashletSpec);

    previewButton.addClickListener(new PreviewClickListener(this, wallboard));

    FormLayout f6 = new FormLayout();
    f6.addComponent(previewButton);

    upButton.addClickListener(new Button.ClickListener() {
        @Override
        public void buttonClick(Button.ClickEvent clickEvent) {
            m_wallboardEditor.swapDashletSpec(m_dashletSpec, -1);
        }
    });

    downButton.addClickListener(new Button.ClickListener() {
        @Override
        public void buttonClick(Button.ClickEvent clickEvent) {
            m_wallboardEditor.swapDashletSpec(m_dashletSpec, +1);
        }
    });

    /**
     * Adding the different {@link FormLayout} instances to a {@link GridLayout}
     */
    f1.setMargin(true);
    f2.setMargin(true);
    f3.setMargin(true);
    f4.setMargin(true);
    f5.setMargin(true);
    f6.setMargin(true);

    gridLayout.addComponent(f1);
    gridLayout.addComponent(f2);
    gridLayout.addComponent(f3);
    gridLayout.addComponent(f4);
    gridLayout.addComponent(f5);
    gridLayout.addComponent(f6);

    setContent(gridLayout);
}

From source file:org.opennms.features.vaadin.dashboard.config.ui.editors.CriteriaBuilderComponent.java

License:Open Source License

/**
 * This method updates the criteria components.
 *///w  w  w.j  a  v a 2  s  . c o  m
private void renderComponents() {
    m_criteriaLayout.removeAllComponents();

    boolean isFirst = true;
    boolean isLast;

    for (int i = 0; i < m_criteriaRestrictionComponents.size(); i++) {
        final CriteriaRestrictionComponent criteriaRestrictionComponent = m_criteriaRestrictionComponents
                .get(i);
        final int index = i;

        isLast = (i == m_criteriaRestrictionComponents.size() - 1);

        criteriaRestrictionComponent.getRightLayout().removeAllComponents();

        Button plusButton = new Button();
        plusButton.setStyleName("small");
        plusButton.setIcon(new ThemeResource("../runo/icons/16/document-add.png"));
        plusButton.setDescription("Add a new criteria entry");

        Button minusButton = new Button();
        minusButton.setStyleName("small");
        minusButton.setIcon(new ThemeResource("../runo/icons/16/document-delete.png"));
        minusButton.setDescription("Remove this criteria entry");

        Button upButton = new Button();
        upButton.setStyleName("small");
        upButton.setIcon(new ThemeResource("../runo/icons/16/arrow-up.png"));
        upButton.setDescription("Move this a criteria entry one position up");

        Button downButton = new Button();
        downButton.setStyleName("small");
        downButton.setIcon(new ThemeResource("../runo/icons/16/arrow-down.png"));
        downButton.setDescription("Move this a criteria entry one position down");

        criteriaRestrictionComponent.getRightLayout().addComponent(upButton);
        criteriaRestrictionComponent.getRightLayout().addComponent(downButton);
        criteriaRestrictionComponent.getRightLayout().addComponent(plusButton);
        criteriaRestrictionComponent.getRightLayout().addComponent(minusButton);

        if (m_criteriaRestrictionComponents.size() == 1) {
            minusButton.setEnabled(false);
            upButton.setEnabled(false);
            downButton.setEnabled(false);
        } else {
            if (isFirst) {
                upButton.setEnabled(false);
            }

            if (isLast) {
                downButton.setEnabled(false);
            }
        }

        upButton.addClickListener(new Button.ClickListener() {
            @Override
            public void buttonClick(Button.ClickEvent clickEvent) {
                Collections.swap(m_criteriaRestrictionComponents, index, index - 1);
                renderComponents();
            }
        });

        downButton.addClickListener(new Button.ClickListener() {
            @Override
            public void buttonClick(Button.ClickEvent clickEvent) {
                Collections.swap(m_criteriaRestrictionComponents, index, index + 1);
                renderComponents();
            }
        });

        minusButton.addClickListener(new Button.ClickListener() {
            public void buttonClick(Button.ClickEvent clickEvent) {
                m_criteriaRestrictionComponents.remove(criteriaRestrictionComponent);
                renderComponents();
            }
        });

        plusButton.addClickListener(new Button.ClickListener() {
            public void buttonClick(Button.ClickEvent clickEvent) {
                m_criteriaRestrictionComponents.add(index + 1,
                        new CriteriaRestrictionComponent(m_criteriaBuilderHelper, "Limit(10)"));
                renderComponents();
            }
        });

        isFirst = false;

        m_criteriaLayout.addComponent(criteriaRestrictionComponent);
    }
}

From source file:org.opennms.features.vaadin.dashboard.dashlets.SummaryDashlet.java

License:Open Source License

private Component getLegend(String entity) {
    HorizontalLayout horizontalLayout = new HorizontalLayout();

    horizontalLayout.setSpacing(true);//from  w  w  w. j a v  a2 s .c om
    horizontalLayout.addStyleName("summary");
    horizontalLayout.addStyleName("global");

    Label labelx = new Label(entity);
    labelx.addStyleName("summary-font-legend");

    Image ackdImage = new Image(null, new ThemeResource("img/acknowledged.png"));
    ackdImage.setWidth(16, Sizeable.Unit.PIXELS);

    Image unackdImage = new Image(null, new ThemeResource("img/unacknowledged.png"));
    unackdImage.setWidth(16, Sizeable.Unit.PIXELS);

    Label dummyLabel = new Label();
    dummyLabel.setWidth(32, Sizeable.Unit.PIXELS);

    horizontalLayout.addComponent(labelx);
    horizontalLayout.addComponent(ackdImage);
    horizontalLayout.addComponent(unackdImage);
    horizontalLayout.addComponent(dummyLabel);

    horizontalLayout.setComponentAlignment(ackdImage, Alignment.TOP_RIGHT);
    horizontalLayout.setComponentAlignment(unackdImage, Alignment.TOP_RIGHT);

    horizontalLayout.setExpandRatio(labelx, 4.0f);
    horizontalLayout.setExpandRatio(ackdImage, 1.0f);
    horizontalLayout.setExpandRatio(unackdImage, 1.0f);
    horizontalLayout.setExpandRatio(dummyLabel, 1.0f);

    horizontalLayout.setWidth(375, Sizeable.Unit.PIXELS);

    return horizontalLayout;
}

From source file:org.opennms.features.vaadin.dashboard.dashlets.SummaryDashlet.java

License:Open Source License

/**
 * Returns the component showing the alarms and the trends by severity
 *
 * @return the {@link Component}/*from  www  .j  a v a  2 s.c o  m*/
 */
private Component getComponentSeverity(int width) {
    VerticalLayout verticalLayout = new VerticalLayout();

    int overallSum = 0;
    int severitySum = 0;

    verticalLayout.addComponent(getLegend("Severity"));

    for (OnmsSeverity onmsSeverity : OnmsSeverity.values()) {
        HorizontalLayout horizontalLayout = new HorizontalLayout();
        horizontalLayout.setSpacing(true);
        horizontalLayout.addStyleName("summary");
        horizontalLayout.addStyleName(onmsSeverity.name().toLowerCase());

        int acknowledged = countBySeverity(true, m_timeslot, onmsSeverity);
        int notAcknowledged = countBySeverity(false, m_timeslot, onmsSeverity);

        Label labelSeverity = new Label(onmsSeverity.getLabel());
        labelSeverity.addStyleName("summary-font");
        Label labelAcknowledge = new Label(String.valueOf(acknowledged));
        labelAcknowledge.addStyleName("summary-font");
        Label labelNotAcknowledged = new Label(String.valueOf(notAcknowledged));
        labelNotAcknowledged.addStyleName("summary-font");

        horizontalLayout.addComponent(labelSeverity);
        horizontalLayout.addComponent(labelAcknowledge);
        horizontalLayout.addComponent(labelNotAcknowledged);

        int status = computeTrend(acknowledged, notAcknowledged);

        severitySum += onmsSeverity.getId();
        overallSum += onmsSeverity.getId() * status;

        Image image = new Image(null, new ThemeResource("img/a" + status + ".png"));
        image.setWidth(width, Sizeable.Unit.PIXELS);
        horizontalLayout.addComponent(image);

        horizontalLayout.setExpandRatio(labelSeverity, 4.0f);
        horizontalLayout.setExpandRatio(labelAcknowledge, 1.0f);
        horizontalLayout.setExpandRatio(labelNotAcknowledged, 1.0f);
        horizontalLayout.setExpandRatio(image, 1.0f);

        horizontalLayout.setComponentAlignment(image, Alignment.TOP_CENTER);

        horizontalLayout.setWidth(375, Sizeable.Unit.PIXELS);
        verticalLayout.addComponent(horizontalLayout);
    }

    int globalTrend = (int) Math.max(0,
            Math.min(4, Math.round(((double) overallSum) / ((double) severitySum))));

    Image image = new Image(null, new ThemeResource("img/a" + globalTrend + ".png"));
    image.setWidth(width * 8, Sizeable.Unit.PIXELS);

    VerticalLayout globalTrendLayout = new VerticalLayout();
    globalTrendLayout.setSpacing(true);
    globalTrendLayout.addStyleName("summary");
    globalTrendLayout.addStyleName("global");
    globalTrendLayout.setSizeFull();

    Label labelTitle = new Label("Alarms trend by severity");
    labelTitle.addStyleName("summary-font");
    labelTitle.setSizeUndefined();

    Label labelTimeslot = new Label("(" + getHumanReadableFormat(m_timeslot) + ")");
    labelTimeslot.addStyleName("summary-font");
    labelTimeslot.setSizeUndefined();

    globalTrendLayout.addComponent(labelTitle);
    globalTrendLayout.addComponent(labelTimeslot);
    globalTrendLayout.addComponent(image);

    globalTrendLayout.setWidth(375, Sizeable.Unit.PIXELS);

    globalTrendLayout.setComponentAlignment(labelTitle, Alignment.MIDDLE_CENTER);
    globalTrendLayout.setComponentAlignment(labelTimeslot, Alignment.MIDDLE_CENTER);
    globalTrendLayout.setComponentAlignment(image, Alignment.MIDDLE_CENTER);

    globalTrendLayout.setExpandRatio(labelTitle, 1.0f);

    verticalLayout.addComponent(globalTrendLayout, 0);

    m_boosted = (globalTrend > 2);

    return verticalLayout;
}

From source file:org.opennms.features.vaadin.dashboard.dashlets.SummaryDashlet.java

License:Open Source License

/**
 * Returns the component showing the alarms and the trends by severity
 *
 * @return the {@link Component}// w w w . j a va 2  s  . c o  m
 */
private Component getComponentUei(int width) {
    VerticalLayout verticalLayout = new VerticalLayout();

    int overallSum = 0;
    int severitySum = 0;

    verticalLayout.addComponent(getLegend("UEI"));

    String[] ueis = { "uei.opennms.org/nodes/nodeLostService", "uei.opennms.org/nodes/interfaceDown",
            "uei.opennms.org/nodes/nodeDown" };

    for (int i = 0; i < ueis.length; i++) {
        String uei = ueis[i];
        HorizontalLayout horizontalLayout = new HorizontalLayout();
        horizontalLayout.setSpacing(true);
        horizontalLayout.addStyleName("summary");

        if (i == 0) {
            horizontalLayout.addStyleName(OnmsSeverity.MINOR.name().toLowerCase());
        } else {
            if (i == 1) {
                horizontalLayout.addStyleName(OnmsSeverity.MINOR.name().toLowerCase());
            } else {
                horizontalLayout.addStyleName(OnmsSeverity.MAJOR.name().toLowerCase());
            }
        }

        int acknowledged = countByUei(true, m_timeslot, uei);
        int notAcknowledged = countByUei(false, m_timeslot, uei);

        Label labelSeverity = new Label(uei.replace("uei.opennms.org/nodes/", ""));
        labelSeverity.addStyleName("summary-font");
        Label labelAcknowledge = new Label(String.valueOf(acknowledged));
        labelAcknowledge.addStyleName("summary-font");
        Label labelNotAcknowledged = new Label(String.valueOf(notAcknowledged));
        labelNotAcknowledged.addStyleName("summary-font");

        horizontalLayout.addComponent(labelSeverity);
        horizontalLayout.addComponent(labelAcknowledge);
        horizontalLayout.addComponent(labelNotAcknowledged);

        int status = computeTrend(acknowledged, notAcknowledged);

        severitySum += i;
        overallSum += i * status;

        Image image = new Image(null, new ThemeResource("img/a" + status + ".png"));
        image.setWidth(width, Sizeable.Unit.PIXELS);
        horizontalLayout.addComponent(image);

        horizontalLayout.setExpandRatio(labelSeverity, 4.0f);
        horizontalLayout.setExpandRatio(labelAcknowledge, 1.0f);
        horizontalLayout.setExpandRatio(labelNotAcknowledged, 1.0f);
        horizontalLayout.setExpandRatio(image, 1.0f);

        horizontalLayout.setComponentAlignment(image, Alignment.TOP_CENTER);

        horizontalLayout.setWidth(375, Sizeable.Unit.PIXELS);
        verticalLayout.addComponent(horizontalLayout);
    }

    int globalTrend = (int) Math.max(0,
            Math.min(4, Math.round(((double) overallSum) / ((double) severitySum))));

    Image image = new Image(null, new ThemeResource("img/a" + globalTrend + ".png"));
    image.setWidth(width * 8, Sizeable.Unit.PIXELS);

    VerticalLayout globalTrendLayout = new VerticalLayout();
    globalTrendLayout.setSpacing(true);
    globalTrendLayout.addStyleName("summary");
    globalTrendLayout.addStyleName("global");
    globalTrendLayout.setSizeFull();

    Label labelTitle = new Label("Alarms trend by UEI");
    labelTitle.addStyleName("summary-font");
    labelTitle.setSizeUndefined();

    Label labelTimeslot = new Label("(" + getHumanReadableFormat(m_timeslot) + ")");
    labelTimeslot.addStyleName("summary-font");
    labelTimeslot.setSizeUndefined();

    globalTrendLayout.addComponent(labelTitle);
    globalTrendLayout.addComponent(labelTimeslot);
    globalTrendLayout.addComponent(image);

    globalTrendLayout.setWidth(375, Sizeable.Unit.PIXELS);

    globalTrendLayout.setComponentAlignment(labelTitle, Alignment.MIDDLE_CENTER);
    globalTrendLayout.setComponentAlignment(labelTimeslot, Alignment.MIDDLE_CENTER);
    globalTrendLayout.setComponentAlignment(image, Alignment.MIDDLE_CENTER);

    globalTrendLayout.setExpandRatio(labelTitle, 1.0f);

    verticalLayout.addComponent(globalTrendLayout, 0);

    m_boosted = (globalTrend > 2);

    return verticalLayout;
}