public void setSettingsFileItem(Item settingsFileItem) { removeAllComponents(); ProfileTree profileTree = JadevaadincockpitUI.getCurrent().getMainView().getProfileTree(); Object settingsFileItemId = profileTree.getValue(); Iterator<?> iterator = profileTree.getChildren(settingsFileItemId).iterator(); while (iterator.hasNext()) { addComponent(new ProfileOverview(profileTree.getItem(iterator.next()))); } VerticalLayout spacer = new VerticalLayout(); addComponent(spacer); setExpandRatio(spacer, 1); }
public ProfileOverview(final Item profileItem) { final Component comp = this; final ProfileTree profileTree = JadevaadincockpitUI.getCurrent().getMainView().getProfileTree(); final Object profileItemId = profileItem.getItemProperty(ProfileContainer.PROPERTY.ID).getValue(); JADEOptions options = (JADEOptions) profileItem.getItemProperty(ProfileContainer.PROPERTY.JADEOPTIONS).getValue(); HorizontalLayout buttonLayout = new HorizontalLayout(); Button executeButton = null; Button renameButton = null; Label spacerLabel = new Label(); Button editButton = new Button("edit"); editButton.setIcon(new ThemeResource("icons/edit_16.png")); Button deleteButton = new Button("delete"); deleteButton.setIcon(new ThemeResource("icons/delete_16.png")); if (!options.isFragment.value() && !options.profile.Value().equalsIgnoreCase("globals")) { executeButton = new Button("execute"); executeButton.setIcon(new ThemeResource("icons/exec_16.png")); executeButton.addClickListener( new ClickListener() { @Override public void buttonClick(ClickEvent event) { // TODO profile has to be saved before execution as checkMandatory() will read from // the file (not from the options-Object) JadevaadincockpitUI.getCurrent() .getApplicationAttributes() .getJadeSettingsFile() .saveSettingsFile(profileItemId); JadeVaadinAdapter jadeAdapter = new JadeVaadinAdapter(); jadeAdapter.execute(profileItem); } }); } if (!options.profile.Value().equalsIgnoreCase("globals")) { renameButton = new Button("rename"); renameButton.setIcon(new ThemeResource("icons/rename_16.png")); renameButton.addClickListener( new ClickListener() { @Override public void buttonClick(ClickEvent event) { TextInputDialog dialog = new TextInputDialog( "Rename Profile", "Please enter a new name.", new TextInputDialog.Callback() { @Override public void onDialogResult(boolean isOk, String input) { if (isOk) { JadevaadincockpitUI.getCurrent() .getApplicationAttributes() .getJadeSettingsFile() .renameProfile(profileItemId, input); } } }); dialog.setEmptyInputAllowed(false); dialog.setEmptyInputMessage("Please enter a name."); UI.getCurrent().addWindow(dialog); } }); } if (executeButton != null) { buttonLayout.addComponent(executeButton); } buttonLayout.addComponent(editButton); if (renameButton != null) { buttonLayout.addComponent(renameButton); } buttonLayout.addComponents(deleteButton, spacerLabel); buttonLayout.setExpandRatio(spacerLabel, 1); buttonLayout.setSpacing(true); final ComponentGroup group = new ComponentGroup(options.profile.Value()); options.profile.addValueChangedListener( new IValueChangedListener() { @Override public void ValueHasChanged(SOSOptionElement pobjOptionElement) { group.setCaption(pobjOptionElement.Value()); } @Override public void ValidationError(SOSValidationError pobjVE) { // TODO Auto-generated method stub } }); Label descLabel = new Label(options.title.Value()); // TODO panel soll beim Löschen des zugehörigen Items entfernt werden // profileTree.addItemSetChangeListener(new ItemSetChangeListener() { // // @Override // public void containerItemSetChange(ItemSetChangeEvent event) { // if (!event.getContainer().containsId(profileItemId)) { // removeGroup(comp); // } // // } // }); group.addComponents(buttonLayout, descLabel); setCompositionRoot(group); editButton.addClickListener( new ClickListener() { @Override public void buttonClick(ClickEvent event) { profileTree.setValue(profileItemId); } }); deleteButton.addClickListener( new ClickListener() { @Override public void buttonClick(ClickEvent event) { ConfirmationDialog dialog = new ConfirmationDialog( "Delete Profile", "Do you really want to delete the selected profile from the settings file?", new ConfirmationDialog.Callback() { @Override public void onDialogResult(boolean isOk) { if (isOk) { // delete profile JadevaadincockpitUI.getCurrent() .getApplicationAttributes() .getJadeSettingsFile() .deleteProfile(profileItemId); } else { // Do nothing } } }); UI.getCurrent().addWindow(dialog); } }); }