Search in sources :

Example 26 with ListModel

use of org.ovirt.engine.ui.uicommonweb.models.ListModel in project ovirt-engine by oVirt.

the class VfsNicLabelModel method initLabelModels.

protected void initLabelModels() {
    Collections.sort(originalLabels, new LexoNumericComparator());
    LinkedList<ListModel<String>> items = new LinkedList<>();
    for (String label : originalLabels) {
        ListModel<String> labelModel = new ListModel<>();
        labelModel.setItems(suggestedLabels);
        labelModel.setSelectedItem(label);
        items.add(labelModel);
    }
    setItems(items);
    suggestedLabelsCache = new TreeSet<>(suggestedLabels);
}
Also used : ListModel(org.ovirt.engine.ui.uicommonweb.models.ListModel) LexoNumericComparator(org.ovirt.engine.core.common.businessentities.comparators.LexoNumericComparator) LinkedList(java.util.LinkedList)

Example 27 with ListModel

use of org.ovirt.engine.ui.uicommonweb.models.ListModel in project ovirt-engine by oVirt.

the class UiCommonEditorVisitor method visit.

@SuppressWarnings("unchecked")
@Override
public <T> boolean visit(final EditorContext<T> ctx) {
    final String absolutePath = ctx.getAbsolutePath();
    LeafValueEditor<T> currentLeafEditor = ctx.asLeafValueEditor();
    if (currentLeafEditor == null) {
        // Ignore non-leaf Editors
        return super.visit(ctx);
    }
    final LeafValueEditor<T> editor = getActualEditor(currentLeafEditor);
    // If this Editor implements HasValueChangeHandlers, register a value change listener
    if (editor instanceof HasValueChangeHandlers) {
        ((HasValueChangeHandlers<T>) editor).addValueChangeHandler(event -> setInModel(ctx, event.getSource(), event.getValue()));
    }
    final UiCommonEditor<T> functionalEditor = getFunctionalEditor(currentLeafEditor);
    if (functionalEditor != null) {
        // Pass in the EditorDelegate
        if (editor instanceof HasEditorDelegate) {
            ((HasEditorDelegate<T>) editor).setDelegate(ctx.getEditorDelegate());
        }
        // Set tab index, unless it's being set manually (i.e. already been set)
        if (functionalEditor.getTabIndex() <= 0) {
            functionalEditor.setTabIndex(++tabIndexCounter);
        }
        // Add key press handler
        functionalEditor.addKeyPressHandler(event -> {
            if (KeyCodes.KEY_ENTER == event.getNativeEvent().getKeyCode()) {
                setInModel(ctx, editor, editor.getValue());
            }
        });
    }
    // Handle owner entity models
    if (ownerModels.containsKey(absolutePath)) {
        Model ownerModel = ownerModels.get(absolutePath);
        // If this editor edits a ListModel, initialize it
        if (editor instanceof TakesConstrainedValueListEditor && ownerModel instanceof ListModel) {
            updateListEditor((TakesConstrainedValueListEditor<T>) editor, (ListModel) ownerModel);
        } else if (editor instanceof TakesConstrainedValueEditor && ownerModel instanceof ListModel) {
            updateListEditor((TakesConstrainedValueEditor<T>) editor, (ListModel) ownerModel);
        }
        if (functionalEditor != null) {
            // Register a property change listener on the owner entity model
            ownerModel.getPropertyChangedEvent().addListener((ev, sender, args) -> {
                Model owner = (Model) sender;
                String propName = args.propertyName;
                // IsValid
                if ("IsValid".equals(propName)) {
                    // $NON-NLS-1$
                    onIsValidPropertyChange(functionalEditor, owner);
                } else // IsChangable
                if ("IsChangable".equals(propName)) {
                    // $NON-NLS-1$
                    onIsChangablePropertyChange(functionalEditor, owner);
                } else // ChangeProhibitionReason
                if ("ChangeProhibitionReason".equals(propName)) {
                    // $NON-NLS-1$
                    onChangeProhibitionReasonChange(functionalEditor, owner);
                } else // IsAvailable
                if ("IsAvailable".equals(propName)) {
                    // $NON-NLS-1$
                    onIsAvailablePropertyChange(functionalEditor, owner);
                }
            });
            // Update editor since we might have missed property change
            // events fired as part of the entity model constructor
            onIsValidPropertyChange(functionalEditor, ownerModel);
            onIsChangablePropertyChange(functionalEditor, ownerModel);
            onChangeProhibitionReasonChange(functionalEditor, ownerModel);
            onIsAvailablePropertyChange(functionalEditor, ownerModel);
        }
    }
    // Register listeners
    // $NON-NLS-1$
    eventMap.registerListener(// $NON-NLS-1$
    absolutePath, // $NON-NLS-1$
    "EntityChanged", (ev, sender, args) -> editor.setValue((T) ((EntityModel) sender).getEntity()));
    // $NON-NLS-1$
    eventMap.registerListener(// $NON-NLS-1$
    absolutePath, // $NON-NLS-1$
    "ItemsChanged", (ev, sender, args) -> updateListEditor((TakesConstrainedValueEditor<T>) editor, (ListModel) sender));
    eventMap.registerListener(absolutePath, "SelectedItemChanged", (ev, sender, args) -> {
        // $NON-NLS-1$
        T selectedItem = (T) ((ListModel) sender).getSelectedItem();
        if (editor instanceof TakesConstrainedValueListEditor && ownerModels.get(absolutePath) instanceof ListModel) {
            editor.setValue((T) Arrays.asList(selectedItem));
        } else {
            editor.setValue(selectedItem);
        }
    });
    eventMap.registerListener(absolutePath, "SelectedItemsChanged", (ev, sender, args) -> {
        // $NON-NLS-1$
        if (editor instanceof TakesConstrainedValueListEditor && ownerModels.get(absolutePath) instanceof ListModel) {
            ((TakesConstrainedValueListEditor) editor).setListValue((List<T>) ((ListModel) sender).getSelectedItems());
        }
    });
    return super.visit(ctx);
}
Also used : ListModel(org.ovirt.engine.ui.uicommonweb.models.ListModel) ListModel(org.ovirt.engine.ui.uicommonweb.models.ListModel) EntityModel(org.ovirt.engine.ui.uicommonweb.models.EntityModel) Model(org.ovirt.engine.ui.uicommonweb.models.Model) TakesConstrainedValueListEditor(org.ovirt.engine.ui.common.widget.editor.TakesConstrainedValueListEditor) HasEditorDelegate(com.google.gwt.editor.client.HasEditorDelegate) HasValueChangeHandlers(com.google.gwt.event.logical.shared.HasValueChangeHandlers) TakesConstrainedValueEditor(org.ovirt.engine.ui.common.widget.editor.TakesConstrainedValueEditor)

Example 28 with ListModel

use of org.ovirt.engine.ui.uicommonweb.models.ListModel in project ovirt-engine by oVirt.

the class StorageDataCenterListModel method onAttach.

private void onAttach() {
    final ListModel<EntityModel<StoragePool>> model = (ListModel<EntityModel<StoragePool>>) getWindow();
    if (model.getProgress() != null) {
        return;
    }
    if (getEntity() == null) {
        cancel();
        return;
    }
    ArrayList<StoragePool> items = new ArrayList<>();
    for (EntityModel<StoragePool> a : model.getItems()) {
        if (a.getIsSelected()) {
            items.add(a.getEntity());
        }
    }
    if (items.size() == 0) {
        cancel();
        return;
    }
    setSelectedDataCentersForAttach(items);
    model.startProgress();
    if (getEntity().getStorageDomainType() == StorageDomainType.Data) {
        StoragePool dataCenter = items.get(0);
        ArrayList<StorageDomain> storageDomains = new ArrayList<>();
        storageDomains.add(getEntity());
        AsyncDataProvider.getInstance().getStorageDomainsWithAttachedStoragePoolGuid(new AsyncQuery<>(attachedStorageDomains -> {
            if (!attachedStorageDomains.isEmpty()) {
                ConfirmationModel confirmationModel = new ConfirmationModel();
                setWindow(null);
                setWindow(confirmationModel);
                List<String> stoageDomainNames = new ArrayList<>();
                for (StorageDomainStatic domain : attachedStorageDomains) {
                    stoageDomainNames.add(domain.getStorageName());
                }
                confirmationModel.setItems(stoageDomainNames);
                confirmationModel.setTitle(ConstantsManager.getInstance().getConstants().storageDomainsAttachedToDataCenterWarningTitle());
                confirmationModel.setMessage(ConstantsManager.getInstance().getConstants().storageDomainsAttachedToDataCenterWarningMessage());
                confirmationModel.setHelpTag(HelpTag.attach_storage_domain_confirmation);
                // $NON-NLS-1$
                confirmationModel.setHashName("attach_storage_domain_confirmation");
                confirmationModel.getLatch().setIsAvailable(true);
                confirmationModel.getLatch().setIsChangeable(true);
                // $NON-NLS-1$
                UICommand onApprove = new UICommand("OnAttachApprove", StorageDataCenterListModel.this);
                onApprove.setTitle(ConstantsManager.getInstance().getConstants().ok());
                onApprove.setIsDefault(true);
                confirmationModel.getCommands().add(onApprove);
                // $NON-NLS-1$
                UICommand cancel = new UICommand("Cancel", StorageDataCenterListModel.this);
                cancel.setTitle(ConstantsManager.getInstance().getConstants().cancel());
                cancel.setIsCancel(true);
                confirmationModel.getCommands().add(cancel);
            } else {
                executeAttachStorageDomains(model);
            }
        }), dataCenter, storageDomains);
    } else {
        executeAttachStorageDomains(model);
    }
}
Also used : StoragePool(org.ovirt.engine.core.common.businessentities.StoragePool) QueryType(org.ovirt.engine.core.common.queries.QueryType) StorageDomain(org.ovirt.engine.core.common.businessentities.StorageDomain) HelpTag(org.ovirt.engine.ui.uicommonweb.help.HelpTag) SearchableListModel(org.ovirt.engine.ui.uicommonweb.models.SearchableListModel) ActionParametersBase(org.ovirt.engine.core.common.action.ActionParametersBase) IdQueryParameters(org.ovirt.engine.core.common.queries.IdQueryParameters) ConfirmationModel(org.ovirt.engine.ui.uicommonweb.models.ConfirmationModel) ArrayList(java.util.ArrayList) EntityModel(org.ovirt.engine.ui.uicommonweb.models.EntityModel) ActionType(org.ovirt.engine.core.common.action.ActionType) Frontend(org.ovirt.engine.ui.frontend.Frontend) StorageDomainStatic(org.ovirt.engine.core.common.businessentities.StorageDomainStatic) LexoNumericComparator(org.ovirt.engine.core.common.businessentities.comparators.LexoNumericComparator) ConstantsManager(org.ovirt.engine.ui.uicompat.ConstantsManager) StorageDomainPoolParametersBase(org.ovirt.engine.core.common.action.StorageDomainPoolParametersBase) AsyncDataProvider(org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider) Model(org.ovirt.engine.ui.uicommonweb.models.Model) AttachStorageDomainToPoolParameters(org.ovirt.engine.core.common.action.AttachStorageDomainToPoolParameters) RemoveStorageDomainParameters(org.ovirt.engine.core.common.action.RemoveStorageDomainParameters) StorageType(org.ovirt.engine.core.common.businessentities.storage.StorageType) ActionUtils(org.ovirt.engine.core.common.ActionUtils) QueryReturnValue(org.ovirt.engine.core.common.queries.QueryReturnValue) StoragePoolStatus(org.ovirt.engine.core.common.businessentities.StoragePoolStatus) UICommand(org.ovirt.engine.ui.uicommonweb.UICommand) ListModel(org.ovirt.engine.ui.uicommonweb.models.ListModel) StorageDomainSharedStatus(org.ovirt.engine.core.common.businessentities.StorageDomainSharedStatus) List(java.util.List) StorageDomainType(org.ovirt.engine.core.common.businessentities.StorageDomainType) Comparator(java.util.Comparator) Collections(java.util.Collections) DeactivateStorageDomainWithOvfUpdateParameters(org.ovirt.engine.core.common.action.DeactivateStorageDomainWithOvfUpdateParameters) PropertyChangedEventArgs(org.ovirt.engine.ui.uicompat.PropertyChangedEventArgs) DetachStorageDomainFromPoolParameters(org.ovirt.engine.core.common.action.DetachStorageDomainFromPoolParameters) StorageDomainStatic(org.ovirt.engine.core.common.businessentities.StorageDomainStatic) StoragePool(org.ovirt.engine.core.common.businessentities.StoragePool) EntityModel(org.ovirt.engine.ui.uicommonweb.models.EntityModel) ArrayList(java.util.ArrayList) ConfirmationModel(org.ovirt.engine.ui.uicommonweb.models.ConfirmationModel) StorageDomain(org.ovirt.engine.core.common.businessentities.StorageDomain) SearchableListModel(org.ovirt.engine.ui.uicommonweb.models.SearchableListModel) ListModel(org.ovirt.engine.ui.uicommonweb.models.ListModel) ArrayList(java.util.ArrayList) List(java.util.List) UICommand(org.ovirt.engine.ui.uicommonweb.UICommand)

Example 29 with ListModel

use of org.ovirt.engine.ui.uicommonweb.models.ListModel in project ovirt-engine by oVirt.

the class StorageDataCenterListModel method executeAttachStorageDomains.

public void executeAttachStorageDomains(Model model) {
    ArrayList<ActionParametersBase> parameters = new ArrayList<>();
    for (StoragePool dataCenter : getSelectedDataCentersForAttach()) {
        parameters.add(new AttachStorageDomainToPoolParameters(getEntity().getId(), dataCenter.getId()));
    }
    Frontend.getInstance().runMultipleAction(ActionType.AttachStorageDomainToPool, parameters, result -> {
        ListModel localModel = (ListModel) result.getState();
        localModel.stopProgress();
        cancel();
    }, model);
}
Also used : AttachStorageDomainToPoolParameters(org.ovirt.engine.core.common.action.AttachStorageDomainToPoolParameters) StoragePool(org.ovirt.engine.core.common.businessentities.StoragePool) SearchableListModel(org.ovirt.engine.ui.uicommonweb.models.SearchableListModel) ListModel(org.ovirt.engine.ui.uicommonweb.models.ListModel) ArrayList(java.util.ArrayList) ActionParametersBase(org.ovirt.engine.core.common.action.ActionParametersBase)

Example 30 with ListModel

use of org.ovirt.engine.ui.uicommonweb.models.ListModel in project ovirt-engine by oVirt.

the class DisksAllocationModel method updateDisks.

private void updateDisks(Object sender) {
    StorageDomain storageDomain = ((ListModel<StorageDomain>) sender).getSelectedItem();
    if (storageDomain != null) {
        for (DiskModel innerDisk : disks) {
            if (innerDisk.getStorageDomain().equals(sender)) {
                Guid diskQuotaId = null;
                if (innerDisk.getDisk() instanceof DiskImage) {
                    DiskImage img = (DiskImage) innerDisk.getDisk();
                    diskQuotaId = img.getQuotaId();
                }
                updateQuota(storageDomain.getId(), innerDisk.getQuota(), diskQuotaId);
                updateDiskProfile(storageDomain.getId(), innerDisk.getDiskProfile());
                break;
            }
        }
    }
}
Also used : DiskModel(org.ovirt.engine.ui.uicommonweb.models.vms.DiskModel) StorageDomain(org.ovirt.engine.core.common.businessentities.StorageDomain) ListModel(org.ovirt.engine.ui.uicommonweb.models.ListModel) Guid(org.ovirt.engine.core.compat.Guid) DiskImage(org.ovirt.engine.core.common.businessentities.storage.DiskImage)

Aggregations

ListModel (org.ovirt.engine.ui.uicommonweb.models.ListModel)43 ArrayList (java.util.ArrayList)29 EntityModel (org.ovirt.engine.ui.uicommonweb.models.EntityModel)19 List (java.util.List)17 StoragePool (org.ovirt.engine.core.common.businessentities.StoragePool)11 UICommand (org.ovirt.engine.ui.uicommonweb.UICommand)11 SearchableListModel (org.ovirt.engine.ui.uicommonweb.models.SearchableListModel)9 DiskImage (org.ovirt.engine.core.common.businessentities.storage.DiskImage)8 EntityModelCellTable (org.ovirt.engine.ui.common.widget.editor.EntityModelCellTable)8 AsyncDataProvider (org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider)8 StorageDomain (org.ovirt.engine.core.common.businessentities.StorageDomain)7 TreeItem (com.google.gwt.user.client.ui.TreeItem)6 Cluster (org.ovirt.engine.core.common.businessentities.Cluster)6 Model (org.ovirt.engine.ui.uicommonweb.models.Model)6 Provider (org.ovirt.engine.core.common.businessentities.Provider)5 QueryType (org.ovirt.engine.core.common.queries.QueryType)5 PropertyChangedEventArgs (org.ovirt.engine.ui.uicompat.PropertyChangedEventArgs)5 Collections (java.util.Collections)4 ApplicationMode (org.ovirt.engine.core.common.mode.ApplicationMode)4 Linq (org.ovirt.engine.ui.uicommonweb.Linq)4