All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jboss.as.console.client.shared.viewframework.EmbeddedPropertyView Maven / Gradle / Ivy

Go to download

Bundles the core AS7 console as a GWT module. Includes minor customizations to support extensions.

There is a newer version: 0.7.0.Final
Show newest version
package org.jboss.as.console.client.shared.viewframework;

import com.google.gwt.user.client.ui.Widget;
import org.jboss.as.console.client.Console;
import org.jboss.as.console.client.shared.properties.NewPropertyWizard;
import org.jboss.as.console.client.shared.properties.PropertyEditor;
import org.jboss.as.console.client.shared.properties.PropertyManagement;
import org.jboss.as.console.client.shared.properties.PropertyRecord;
import org.jboss.ballroom.client.widgets.window.DefaultWindow;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author Heiko Braun
 * @date 11/21/11
 */
public class EmbeddedPropertyView
        implements PropertyManagement, SingleEntityView {


    private FrameworkPresenter presenter;
    private DefaultWindow propertyWindow;
    private PropertyEditor editor;
    private T entity;

    public EmbeddedPropertyView(FrameworkPresenter presenter) {
        this.presenter = presenter;
        this.editor = new PropertyEditor(this, true);
    }

    @Override
    public void updatedEntity(T entity) {
        this.entity = entity;
        this.editor.setProperties("no-ref", entity.getProperties());
    }

    public PropertyEditor getEmbeddedPropertyEditor() {
        return editor;
    }

    @Override
    public String getTitle() {
        return "Properties";
    }

    @Override
    public Widget asWidget() {
        Widget widget = editor.asWidget();
        editor.setAllowEditProps(false);
        return widget;

    }

    @Override
    public void onCreateProperty(String reference, PropertyRecord prop) {

        closePropertyDialoge();

        List props = (entity.getProperties() != null) ?
                entity.getProperties() : new ArrayList();
        props.add(prop);

        Map changeset = new HashMap();
        changeset.put("properties", props);
        presenter.getEntityBridge().onSaveDetails(entity, changeset);
    }

    @Override
    public void onDeleteProperty(String reference, PropertyRecord prop) {

        List updatedProperties = new ArrayList();
        for(PropertyRecord property : entity.getProperties())
        {
            if(!property.getKey().equals(prop.getKey()))
                updatedProperties.add(property);
        }

        Map changeset = new HashMap();
        changeset.put("properties", updatedProperties);
        presenter.getEntityBridge().onSaveDetails(entity, changeset);
    }

    @Override
    public void onChangeProperty(String reference, PropertyRecord prop) {

    }

    @Override
    public void launchNewPropertyDialoge(String reference) {
        propertyWindow = new DefaultWindow(Console.MESSAGES.createTitle("Thread Pool Property"));
        propertyWindow.setWidth(320);
        propertyWindow.setHeight(240);

        propertyWindow.setWidget(
                new NewPropertyWizard(this, reference).asWidget()
        );

        propertyWindow.setGlassEnabled(true);
        propertyWindow.center();
    }

    @Override
    public void closePropertyDialoge() {
        propertyWindow.hide();
    }


}





© 2015 - 2024 Weber Informatics LLC | Privacy Policy