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);
}
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);
}
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);
}
}
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);
}
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;
}
}
}
}
Aggregations