Search in sources :

Example 1 with GwtConfigComponent

use of org.eclipse.kura.web.shared.model.GwtConfigComponent in project kura by eclipse.

the class GwtComponentServiceImpl method findComponentConfiguration.

@Override
public List<GwtConfigComponent> findComponentConfiguration(GwtXSRFToken xsrfToken) throws GwtKuraException {
    checkXSRFToken(xsrfToken);
    ConfigurationService cs = ServiceLocator.getInstance().getService(ConfigurationService.class);
    List<GwtConfigComponent> gwtConfigs = new ArrayList<GwtConfigComponent>();
    try {
        List<ComponentConfiguration> configs = cs.getComponentConfigurations();
        // sort the list alphabetically by service name
        Collections.sort(configs, new Comparator<ComponentConfiguration>() {

            @Override
            public int compare(ComponentConfiguration arg0, ComponentConfiguration arg1) {
                String name0;
                int start = arg0.getPid().lastIndexOf('.');
                int substringIndex = start + 1;
                if (start != -1 && substringIndex < arg0.getPid().length()) {
                    name0 = arg0.getPid().substring(substringIndex);
                } else {
                    name0 = arg0.getPid();
                }
                String name1;
                start = arg1.getPid().lastIndexOf('.');
                substringIndex = start + 1;
                if (start != -1 && substringIndex < arg1.getPid().length()) {
                    name1 = arg1.getPid().substring(substringIndex);
                } else {
                    name1 = arg1.getPid();
                }
                return name0.compareTo(name1);
            }
        });
        for (ComponentConfiguration config : configs) {
            // ignore items we want to hide
            if (!config.getPid().endsWith("CommandCloudApp")) {
                continue;
            }
            OCD ocd = config.getDefinition();
            if (ocd != null) {
                GwtConfigComponent gwtConfig = new GwtConfigComponent();
                gwtConfig.setComponentId(ocd.getId());
                gwtConfig.setComponentName(ocd.getName());
                gwtConfig.setComponentDescription(ocd.getDescription());
                if (ocd.getIcon() != null && !ocd.getIcon().isEmpty()) {
                    Icon icon = ocd.getIcon().get(0);
                    gwtConfig.setComponentIcon(icon.getResource());
                }
                List<GwtConfigParameter> gwtParams = new ArrayList<GwtConfigParameter>();
                gwtConfig.setParameters(gwtParams);
                for (AD ad : ocd.getAD()) {
                    GwtConfigParameter gwtParam = new GwtConfigParameter();
                    gwtParam.setId(ad.getId());
                    gwtParam.setName(ad.getName());
                    gwtParam.setDescription(ad.getDescription());
                    gwtParam.setType(GwtConfigParameterType.valueOf(ad.getType().name()));
                    gwtParam.setRequired(ad.isRequired());
                    gwtParam.setCardinality(ad.getCardinality());
                    if (ad.getOption() != null && !ad.getOption().isEmpty()) {
                        Map<String, String> options = new HashMap<String, String>();
                        for (Option option : ad.getOption()) {
                            options.put(option.getLabel(), option.getValue());
                        }
                        gwtParam.setOptions(options);
                    }
                    gwtParam.setMin(ad.getMin());
                    gwtParam.setMax(ad.getMax());
                    if (config.getConfigurationProperties() != null) {
                        // handle the value based on the cardinality of the
                        // attribute
                        int cardinality = ad.getCardinality();
                        Object value = config.getConfigurationProperties().get(ad.getId());
                        if (value != null) {
                            if (cardinality == 0 || cardinality == 1 || cardinality == -1) {
                                gwtParam.setValue(value.toString());
                            } else {
                                // this could be an array value
                                if (value instanceof Object[]) {
                                    Object[] objValues = (Object[]) value;
                                    List<String> strValues = new ArrayList<String>();
                                    for (Object v : objValues) {
                                        if (v != null) {
                                            strValues.add(v.toString());
                                        }
                                    }
                                    gwtParam.setValues(strValues.toArray(new String[] {}));
                                }
                            }
                        }
                        gwtParams.add(gwtParam);
                    }
                }
                gwtConfigs.add(gwtConfig);
            }
        }
    } catch (Throwable t) {
        KuraExceptionHandler.handle(t);
    }
    return gwtConfigs;
}
Also used : AD(org.eclipse.kura.configuration.metatype.AD) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) ComponentConfiguration(org.eclipse.kura.configuration.ComponentConfiguration) OCD(org.eclipse.kura.configuration.metatype.OCD) GwtConfigParameter(org.eclipse.kura.web.shared.model.GwtConfigParameter) Option(org.eclipse.kura.configuration.metatype.Option) ConfigurationService(org.eclipse.kura.configuration.ConfigurationService) Icon(org.eclipse.kura.configuration.metatype.Icon) GwtConfigComponent(org.eclipse.kura.web.shared.model.GwtConfigComponent)

Example 2 with GwtConfigComponent

use of org.eclipse.kura.web.shared.model.GwtConfigComponent in project kura by eclipse.

the class AbstractServicesUi method restoreConfiguration.

protected void restoreConfiguration(GwtConfigComponent originalConfig) {
    this.m_configurableComponent = new GwtConfigComponent();
    this.m_configurableComponent.setComponentDescription(originalConfig.getComponentDescription());
    this.m_configurableComponent.setComponentIcon(originalConfig.getComponentIcon());
    this.m_configurableComponent.setComponentId(originalConfig.getComponentId());
    this.m_configurableComponent.setComponentName(originalConfig.getComponentName());
    List<GwtConfigParameter> originalParameters = new ArrayList<GwtConfigParameter>();
    for (GwtConfigParameter parameter : originalConfig.getParameters()) {
        GwtConfigParameter tempParam = new GwtConfigParameter(parameter);
        originalParameters.add(tempParam);
    }
    this.m_configurableComponent.setParameters(originalParameters);
    Map<String, Object> originalProperties = new HashMap<String, Object>();
    originalProperties.putAll(originalConfig.getProperties());
    this.m_configurableComponent.setProperties(originalProperties);
}
Also used : HashMap(java.util.HashMap) GwtConfigParameter(org.eclipse.kura.web.shared.model.GwtConfigParameter) ArrayList(java.util.ArrayList) GwtConfigComponent(org.eclipse.kura.web.shared.model.GwtConfigComponent)

Example 3 with GwtConfigComponent

use of org.eclipse.kura.web.shared.model.GwtConfigComponent in project kura by eclipse.

the class EntryClassUi method initServicesTree.

public void initServicesTree() {
    // (Re)Fetch Available Services
    this.gwtXSRFService.generateSecurityToken(new AsyncCallback<GwtXSRFToken>() {

        @Override
        public void onFailure(Throwable ex) {
            FailureHandler.handle(ex, EntryClassUi.class.getName());
        }

        @Override
        public void onSuccess(GwtXSRFToken token) {
            EntryClassUi.this.gwtComponentService.findServicesConfigurations(token, new AsyncCallback<List<GwtConfigComponent>>() {

                @Override
                public void onFailure(Throwable ex) {
                    logger.log(Level.SEVERE, ex.getMessage(), ex);
                    FailureHandler.handle(ex, EntryClassUi.class.getName());
                }

                @Override
                public void onSuccess(List<GwtConfigComponent> result) {
                    EntryClassUi.this.servicesMenu.clear();
                    for (GwtConfigComponent pair : result) {
                        EntryClassUi.this.servicesMenu.add(new ServicesAnchorListItem(pair, EntryClassUi.this.ui));
                    }
                }
            });
        }
    });
}
Also used : AsyncCallback(com.google.gwt.user.client.rpc.AsyncCallback) List(java.util.List) GwtConfigComponent(org.eclipse.kura.web.shared.model.GwtConfigComponent) GwtXSRFToken(org.eclipse.kura.web.shared.model.GwtXSRFToken)

Example 4 with GwtConfigComponent

use of org.eclipse.kura.web.shared.model.GwtConfigComponent in project kura by eclipse.

the class GwtComponentServiceImpl method createGwtComponentConfiguration.

private GwtConfigComponent createGwtComponentConfiguration(ComponentConfiguration config) throws GwtKuraException {
    GwtConfigComponent gwtConfig = null;
    OCD ocd = config.getDefinition();
    if (ocd != null) {
        gwtConfig = new GwtConfigComponent();
        gwtConfig.setComponentId(config.getPid());
        Map<String, Object> props = config.getConfigurationProperties();
        if (props != null && props.get(SERVICE_FACTORY_PID) != null) {
            String pid = stripPidPrefix(config.getPid());
            gwtConfig.setComponentName(pid);
        } else {
            gwtConfig.setComponentName(ocd.getName());
        }
        gwtConfig.setComponentDescription(ocd.getDescription());
        if (ocd.getIcon() != null && !ocd.getIcon().isEmpty()) {
            Icon icon = ocd.getIcon().get(0);
            gwtConfig.setComponentIcon(icon.getResource());
        }
        List<GwtConfigParameter> gwtParams = new ArrayList<GwtConfigParameter>();
        gwtConfig.setParameters(gwtParams);
        if (config.getConfigurationProperties() != null) {
            List<GwtConfigParameter> metatypeProps = getADProperties(config);
            gwtParams.addAll(metatypeProps);
            List<String> addedIds = new ArrayList<String>();
            for (GwtConfigParameter gwtParam : gwtParams) {
                addedIds.add(gwtParam.getId());
            }
            List<GwtConfigParameter> nonMetatypeProps = getNonMetatypeProperties(config, addedIds);
            gwtParams.addAll(nonMetatypeProps);
        }
    }
    return gwtConfig;
}
Also used : OCD(org.eclipse.kura.configuration.metatype.OCD) GwtConfigParameter(org.eclipse.kura.web.shared.model.GwtConfigParameter) ArrayList(java.util.ArrayList) Icon(org.eclipse.kura.configuration.metatype.Icon) GwtConfigComponent(org.eclipse.kura.web.shared.model.GwtConfigComponent)

Example 5 with GwtConfigComponent

use of org.eclipse.kura.web.shared.model.GwtConfigComponent in project kura by eclipse.

the class GwtComponentServiceImpl method findServicesConfigurations.

@Override
public List<GwtConfigComponent> findServicesConfigurations(GwtXSRFToken xsrfToken) throws GwtKuraException {
    checkXSRFToken(xsrfToken);
    List<String> hidePidsList = new ArrayList<String>();
    // identify the services to hide by component configuration property
    fillServicesToHideList(hidePidsList);
    List<GwtConfigComponent> gwtComponentConfigs = new ArrayList<GwtConfigComponent>();
    for (GwtConfigComponent gwtComponentConfig : findFilteredComponentConfigurationsInternal()) {
        String componentPid = gwtComponentConfig.getComponentId();
        if (hidePidsList.contains(componentPid) || componentPid.endsWith("SystemPropertiesService") || componentPid.endsWith("NetworkAdminService") || componentPid.endsWith("NetworkConfigurationService") || componentPid.endsWith("SslManagerService") || componentPid.endsWith("FirewallConfigurationService")) {
            continue;
        }
        gwtComponentConfigs.add(gwtComponentConfig);
    }
    return gwtComponentConfigs;
}
Also used : ArrayList(java.util.ArrayList) GwtConfigComponent(org.eclipse.kura.web.shared.model.GwtConfigComponent)

Aggregations

GwtConfigComponent (org.eclipse.kura.web.shared.model.GwtConfigComponent)14 ArrayList (java.util.ArrayList)12 ComponentConfiguration (org.eclipse.kura.configuration.ComponentConfiguration)6 ConfigurationService (org.eclipse.kura.configuration.ConfigurationService)6 GwtConfigParameter (org.eclipse.kura.web.shared.model.GwtConfigParameter)6 OCD (org.eclipse.kura.configuration.metatype.OCD)4 AsyncCallback (com.google.gwt.user.client.rpc.AsyncCallback)3 HashMap (java.util.HashMap)3 AD (org.eclipse.kura.configuration.metatype.AD)3 Icon (org.eclipse.kura.configuration.metatype.Icon)3 GwtXSRFToken (org.eclipse.kura.web.shared.model.GwtXSRFToken)3 MessageBoxEvent (com.extjs.gxt.ui.client.event.MessageBoxEvent)2 Component (com.extjs.gxt.ui.client.widget.Component)2 Dialog (com.extjs.gxt.ui.client.widget.Dialog)2 List (java.util.List)2 Option (org.eclipse.kura.configuration.metatype.Option)2 ModelData (com.extjs.gxt.ui.client.data.ModelData)1 RpcProxy (com.extjs.gxt.ui.client.data.RpcProxy)1 BaseEvent (com.extjs.gxt.ui.client.event.BaseEvent)1 Listener (com.extjs.gxt.ui.client.event.Listener)1