List of usage examples for org.apache.wicket.ajax.form AjaxFormChoiceComponentUpdatingBehavior AjaxFormChoiceComponentUpdatingBehavior
public AjaxFormChoiceComponentUpdatingBehavior()
From source file:com.doculibre.constellio.wicket.panels.admin.collection.AddEditCollectionPanel.java
License:Open Source License
public AddEditCollectionPanel(String id, RecordCollection collection) { super(id, false); this.collectionModel = new ReloadableEntityModel<RecordCollection>(collection); edit = collection.getId() != null;//w ww . ja v a2 s . com final Form form = getForm(); form.setModel(new CompoundPropertyModel(collectionModel)); form.add(new SetFocusBehavior(form)); TextField nameField = new RequiredTextField("name"); form.add(nameField); nameField.setEnabled(collection.getId() == null); nameField.setOutputMarkupId(true); nameField.add(new StringValidator.MaximumLengthValidator(50)); nameField.add(new PatternValidator(ConstellioNameUtils.NAME_PATTERN)); nameField.add(new DuplicateItemValidator() { @Override protected boolean isDuplicate(Object value) { RecordCollectionServices collectionServices = ConstellioSpringUtils.getRecordCollectionServices(); return collectionServices.get((String) value) != null; } }); TextField openSearchURL = new TextField("openSearchURL"); form.add(openSearchURL); final WebMarkupContainer titleContainer = new WebMarkupContainer("titleContainer"); form.add(titleContainer); titleContainer.setOutputMarkupId(true); MultiLocaleComponentHolder titleHolder = new MultiLocaleComponentHolder("title", collectionModel, new PropertyModel(collectionModel, "locales")) { @Override protected void onPopulateItem(ListItem item, IModel componentModel, Locale locale) { TextField titleLocaleField = new RequiredTextField("titleField", componentModel); item.add(titleLocaleField); titleLocaleField.setOutputMarkupId(true); titleLocaleField.add(new StringValidator.MaximumLengthValidator(255)); item.add(new LocaleNameLabel("localeName", locale, true) { @Override public boolean isVisible() { return collectionModel.getObject().getLocales().size() > 1; } }); } }; titleContainer.add(titleHolder); final WebMarkupContainer descriptionContainer = new WebMarkupContainer("descriptionContainer"); form.add(descriptionContainer); descriptionContainer.setOutputMarkupId(true); MultiLocaleComponentHolder descriptionHolder = new MultiLocaleComponentHolder("description", collectionModel, new PropertyModel(collectionModel, "locales")) { @Override protected void onPopulateItem(ListItem item, IModel componentModel, Locale locale) { TextArea descriptionLocaleField = new TextArea("descriptionLocale", componentModel); item.add(descriptionLocaleField); descriptionLocaleField.setOutputMarkupId(true); item.add(descriptionLocaleField); item.add(new LocaleNameLabel("localeName", locale, true) { @Override public boolean isVisible() { return collectionModel.getObject().getLocales().size() > 1; } }); } }; descriptionContainer.add(descriptionHolder); List<Locale> supportedLocales = ConstellioSpringUtils.getSupportedLocales(); if (collection.getId() == null) { collection.setLocales(new HashSet<Locale>(supportedLocales)); } CheckGroup localesCheckGroup = new CheckGroup("localesCheckGroup", new PropertyModel(collectionModel, "locales")); form.add(localesCheckGroup); localesCheckGroup.setOutputMarkupId(true); localesCheckGroup.add(new AjaxFormChoiceComponentUpdatingBehavior() { @Override protected void onUpdate(AjaxRequestTarget target) { target.addComponent(titleContainer); target.addComponent(descriptionContainer); } }); final Map<Locale, Check> localeChecks = new HashMap<Locale, Check>(); localesCheckGroup.add(new ListView("locales", supportedLocales) { @Override protected void populateItem(ListItem item) { final Locale locale = (Locale) item.getModelObject(); Check localeCheck = localeChecks.get(locale); if (localeCheck == null) { localeCheck = new Check("localeCheck", new Model(locale)); localeChecks.put(locale, localeCheck); } item.add(localeCheck); item.add(new LocaleNameLabel("localeName", locale)); } }); CheckBox publicCollectionCheck = new CheckBox("publicCollection"); form.add(publicCollectionCheck); }
From source file:com.evolveum.midpoint.web.page.admin.configuration.PageImportObject.java
License:Apache License
private void initLayout() { Form mainForm = new Form(ID_MAIN_FORM); add(mainForm);/*from w w w. ja va2 s. c o m*/ ImportOptionsPanel importOptions = new ImportOptionsPanel(ID_IMPORT_OPTIONS, model); mainForm.add(importOptions); final WebMarkupContainer input = new WebMarkupContainer(ID_INPUT); input.setOutputMarkupId(true); mainForm.add(input); final WebMarkupContainer buttonBar = new WebMarkupContainer(ID_BUTTON_BAR); buttonBar.setOutputMarkupId(true); mainForm.add(buttonBar); final IModel<Integer> groupModel = new Model<Integer>(INPUT_FILE); RadioGroup importRadioGroup = new RadioGroup(ID_IMPORT_RADIO_GROUP, groupModel); importRadioGroup.add(new AjaxFormChoiceComponentUpdatingBehavior() { @Override protected void onUpdate(AjaxRequestTarget target) { target.add(input); target.add(buttonBar); } }); mainForm.add(importRadioGroup); Radio fileRadio = new Radio(ID_FILE_RADIO, new Model(INPUT_FILE), importRadioGroup); importRadioGroup.add(fileRadio); Radio xmlRadio = new Radio(ID_XML_RADIO, new Model(INPUT_XML), importRadioGroup); importRadioGroup.add(xmlRadio); WebMarkupContainer inputAce = new WebMarkupContainer(ID_INPUT_ACE); addVisibileForInputType(inputAce, INPUT_XML, groupModel); input.add(inputAce); AceEditor aceEditor = new AceEditor(ID_ACE_EDITOR, xmlEditorModel); aceEditor.setOutputMarkupId(true); inputAce.add(aceEditor); WebMarkupContainer inputFileLabel = new WebMarkupContainer(ID_INPUT_FILE_LABEL); addVisibileForInputType(inputFileLabel, INPUT_FILE, groupModel); input.add(inputFileLabel); WebMarkupContainer inputFile = new WebMarkupContainer(ID_INPUT_FILE); addVisibileForInputType(inputFile, INPUT_FILE, groupModel); input.add(inputFile); FileUploadField fileInput = new FileUploadField(ID_FILE_INPUT); inputFile.add(fileInput); initButtons(buttonBar, groupModel); }
From source file:com.evolveum.midpoint.web.page.admin.reports.PageNewReport.java
License:Apache License
private void initLayout() { Form mainForm = new Form(ID_MAIN_FORM); add(mainForm);//from ww w .jav a 2s . c om final WebMarkupContainer input = new WebMarkupContainer(ID_INPUT); input.setOutputMarkupId(true); mainForm.add(input); final WebMarkupContainer buttonBar = new WebMarkupContainer(ID_BUTTON_BAR); buttonBar.setOutputMarkupId(true); mainForm.add(buttonBar); final IModel<Integer> groupModel = new Model<Integer>(INPUT_FILE); RadioGroup importRadioGroup = new RadioGroup(ID_IMPORT_RADIO_GROUP, groupModel); importRadioGroup.add(new AjaxFormChoiceComponentUpdatingBehavior() { @Override protected void onUpdate(AjaxRequestTarget target) { target.add(input); target.add(buttonBar); } }); mainForm.add(importRadioGroup); Radio fileRadio = new Radio(ID_FILE_RADIO, new Model(INPUT_FILE), importRadioGroup); importRadioGroup.add(fileRadio); Radio xmlRadio = new Radio(ID_XML_RADIO, new Model(INPUT_XML), importRadioGroup); importRadioGroup.add(xmlRadio); WebMarkupContainer inputAce = new WebMarkupContainer(ID_INPUT_ACE); addVisibileForInputType(inputAce, INPUT_XML, groupModel); input.add(inputAce); AceEditor aceEditor = new AceEditor(ID_ACE_EDITOR, xmlEditorModel); aceEditor.setOutputMarkupId(true); inputAce.add(aceEditor); WebMarkupContainer inputFileLabel = new WebMarkupContainer(ID_INPUT_FILE_LABEL); addVisibileForInputType(inputFileLabel, INPUT_FILE, groupModel); input.add(inputFileLabel); WebMarkupContainer inputFile = new WebMarkupContainer(ID_INPUT_FILE); addVisibileForInputType(inputFile, INPUT_FILE, groupModel); input.add(inputFile); FileUploadField fileInput = new FileUploadField(ID_FILE_INPUT); inputFile.add(fileInput); initButtons(buttonBar, groupModel); }
From source file:com.gitblit.wicket.pages.EditRepositoryPage.java
License:Apache License
protected void setupPage(RepositoryModel model) { this.repositoryModel = model; // ensure this user can create or edit this repository checkPermissions(repositoryModel);/* ww w .ja va2 s. c o m*/ List<String> indexedBranches = new ArrayList<String>(); List<String> federationSets = new ArrayList<String>(); final List<RegistrantAccessPermission> repositoryUsers = new ArrayList<RegistrantAccessPermission>(); final List<RegistrantAccessPermission> repositoryTeams = new ArrayList<RegistrantAccessPermission>(); List<String> preReceiveScripts = new ArrayList<String>(); List<String> postReceiveScripts = new ArrayList<String>(); GitBlitWebSession session = GitBlitWebSession.get(); final UserModel user = session.getUser() == null ? UserModel.ANONYMOUS : session.getUser(); final boolean allowEditName = isCreate || isAdmin || repositoryModel.isUsersPersonalRepository(user.username); if (isCreate) { if (user.canAdmin()) { super.setupPage(getString("gb.newRepository"), ""); } else { super.setupPage(getString("gb.newRepository"), user.getDisplayName()); } } else { super.setupPage(getString("gb.edit"), repositoryModel.name); repositoryUsers.addAll(app().repositories().getUserAccessPermissions(repositoryModel)); repositoryTeams.addAll(app().repositories().getTeamAccessPermissions(repositoryModel)); Collections.sort(repositoryUsers); Collections.sort(repositoryTeams); federationSets.addAll(repositoryModel.federationSets); if (!ArrayUtils.isEmpty(repositoryModel.indexedBranches)) { indexedBranches.addAll(repositoryModel.indexedBranches); } } final String oldName = repositoryModel.name; final RegistrantPermissionsPanel usersPalette = new RegistrantPermissionsPanel("users", RegistrantType.USER, app().users().getAllUsernames(), repositoryUsers, getAccessPermissions()); final RegistrantPermissionsPanel teamsPalette = new RegistrantPermissionsPanel("teams", RegistrantType.TEAM, app().users().getAllTeamNames(), repositoryTeams, getAccessPermissions()); // owners palette List<UserChoice> owners = new ArrayList<UserChoice>(); List<UserChoice> persons = new ArrayList<UserChoice>(); for (String owner : repositoryModel.owners) { UserModel o = app().users().getUserModel(owner); if (o != null) { owners.add(new UserChoice(o.getDisplayName(), o.username, o.emailAddress)); } else { UserChoice userChoice = new UserChoice(owner); owners.add(userChoice); persons.add(userChoice); } } for (String person : app().users().getAllUsernames()) { UserModel o = app().users().getUserModel(person); if (o != null) { persons.add(new UserChoice(o.getDisplayName(), o.username, o.emailAddress)); } else { persons.add(new UserChoice(person)); } } final Palette<UserChoice> ownersPalette = new Palette<UserChoice>("owners", new ListModel<UserChoice>(owners), new CollectionModel<UserChoice>(persons), new ChoiceRenderer<UserChoice>(null, "userId"), 12, false); // indexed local branches palette List<String> allLocalBranches = new ArrayList<String>(); allLocalBranches.add(Constants.DEFAULT_BRANCH); allLocalBranches.addAll(repositoryModel.getLocalBranches()); boolean luceneEnabled = app().settings().getBoolean(Keys.web.allowLuceneIndexing, true); final Palette<String> indexedBranchesPalette = new Palette<String>("indexedBranches", new ListModel<String>(indexedBranches), new CollectionModel<String>(allLocalBranches), new StringChoiceRenderer(), 8, false); indexedBranchesPalette.setEnabled(luceneEnabled); // federation sets palette List<String> sets = app().settings().getStrings(Keys.federation.sets); final Palette<String> federationSetsPalette = new Palette<String>("federationSets", new ListModel<String>(federationSets), new CollectionModel<String>(sets), new StringChoiceRenderer(), 8, false); // pre-receive palette if (!ArrayUtils.isEmpty(repositoryModel.preReceiveScripts)) { preReceiveScripts.addAll(repositoryModel.preReceiveScripts); } final Palette<String> preReceivePalette = new Palette<String>("preReceiveScripts", new ListModel<String>(preReceiveScripts), new CollectionModel<String>(app().repositories().getPreReceiveScriptsUnused(repositoryModel)), new StringChoiceRenderer(), 12, true); // post-receive palette if (!ArrayUtils.isEmpty(repositoryModel.postReceiveScripts)) { postReceiveScripts.addAll(repositoryModel.postReceiveScripts); } final Palette<String> postReceivePalette = new Palette<String>("postReceiveScripts", new ListModel<String>(postReceiveScripts), new CollectionModel<String>(app().repositories().getPostReceiveScriptsUnused(repositoryModel)), new StringChoiceRenderer(), 12, true); // custom fields final Map<String, String> customFieldsMap = app().settings().getMap(Keys.groovy.customFields); List<String> customKeys = new ArrayList<String>(customFieldsMap.keySet()); final ListView<String> customFieldsListView = new ListView<String>("customFieldsListView", customKeys) { private static final long serialVersionUID = 1L; @Override protected void populateItem(ListItem<String> item) { String key = item.getModelObject(); item.add(new Label("customFieldLabel", customFieldsMap.get(key))); String value = ""; if (repositoryModel.customFields != null && repositoryModel.customFields.containsKey(key)) { value = repositoryModel.customFields.get(key); } TextField<String> field = new TextField<String>("customFieldValue", new Model<String>(value)); item.add(field); } }; customFieldsListView.setReuseItems(true); CompoundPropertyModel<RepositoryModel> rModel = new CompoundPropertyModel<RepositoryModel>(repositoryModel); Form<RepositoryModel> form = new Form<RepositoryModel>("editForm", rModel) { private static final long serialVersionUID = 1L; @Override protected void onSubmit() { try { if (!namePanel.updateModel(repositoryModel)) { return; } // confirm access restriction selection if (repositoryModel.accessRestriction == null) { error(getString("gb.selectAccessRestriction")); return; } // confirm federation strategy selection if (repositoryModel.federationStrategy == null) { error(getString("gb.selectFederationStrategy")); return; } // save federation set preferences if (repositoryModel.federationStrategy.exceeds(FederationStrategy.EXCLUDE)) { repositoryModel.federationSets.clear(); Iterator<String> sets = federationSetsPalette.getSelectedChoices(); while (sets.hasNext()) { repositoryModel.federationSets.add(sets.next()); } } // set author metric exclusions String ax = metricAuthorExclusions.getObject(); if (StringUtils.isEmpty(ax)) { repositoryModel.metricAuthorExclusions = new ArrayList<String>(); } else { Set<String> list = new HashSet<String>(); for (String exclusion : StringUtils.getStringsFromValue(ax, " ")) { if (StringUtils.isEmpty(exclusion)) { continue; } if (exclusion.indexOf(' ') > -1) { list.add("\"" + exclusion + "\""); } else { list.add(exclusion); } } repositoryModel.metricAuthorExclusions = new ArrayList<String>(list); } // set mailing lists String ml = mailingLists.getObject(); if (StringUtils.isEmpty(ml)) { repositoryModel.mailingLists = new ArrayList<String>(); } else { Set<String> list = new HashSet<String>(); for (String address : ml.split("(,|\\s)")) { if (StringUtils.isEmpty(address)) { continue; } list.add(address.toLowerCase()); } repositoryModel.mailingLists = new ArrayList<String>(list); } // indexed branches List<String> indexedBranches = new ArrayList<String>(); Iterator<String> branches = indexedBranchesPalette.getSelectedChoices(); while (branches.hasNext()) { indexedBranches.add(branches.next()); } repositoryModel.indexedBranches = indexedBranches; // owners repositoryModel.owners.clear(); Iterator<UserChoice> owners = ownersPalette.getSelectedChoices(); while (owners.hasNext()) { repositoryModel.addOwner(owners.next().getUserId()); } // pre-receive scripts List<String> preReceiveScripts = new ArrayList<String>(); Iterator<String> pres = preReceivePalette.getSelectedChoices(); while (pres.hasNext()) { preReceiveScripts.add(pres.next()); } repositoryModel.preReceiveScripts = preReceiveScripts; // post-receive scripts List<String> postReceiveScripts = new ArrayList<String>(); Iterator<String> post = postReceivePalette.getSelectedChoices(); while (post.hasNext()) { postReceiveScripts.add(post.next()); } repositoryModel.postReceiveScripts = postReceiveScripts; // custom fields repositoryModel.customFields = new LinkedHashMap<String, String>(); Iterator<Component> customFieldsListViewIterator = customFieldsListView.iterator(); while (customFieldsListViewIterator.hasNext()) { ListItem<String> child = (ListItem<String>) customFieldsListViewIterator.next(); String key = child.getModelObject(); TextField<String> field = (TextField<String>) child.get("customFieldValue"); String value = field.getValue(); repositoryModel.customFields.put(key, value); } // save the repository app().gitblit().updateRepositoryModel(oldName, repositoryModel, isCreate); // repository access permissions if (repositoryModel.accessRestriction.exceeds(AccessRestrictionType.NONE)) { app().gitblit().setUserAccessPermissions(repositoryModel, repositoryUsers); app().gitblit().setTeamAccessPermissions(repositoryModel, repositoryTeams); } } catch (GitBlitException e) { error(e.getMessage()); return; } setResponsePage(SummaryPage.class, WicketUtils.newRepositoryParameter(repositoryModel.name)); } }; // Determine available refs & branches List<String> availableRefs = new ArrayList<String>(); List<String> availableBranches = new ArrayList<String>(); if (!ArrayUtils.isEmpty(repositoryModel.availableRefs)) { for (String ref : repositoryModel.availableRefs) { if (!ref.startsWith(Constants.R_TICKET)) { availableRefs.add(ref); if (ref.startsWith(Constants.R_HEADS)) { availableBranches.add(Repository.shortenRefName(ref)); } } } } // do not let the browser pre-populate these fields form.add(new AttributeModifier("autocomplete", "off")); // // // GENERAL // namePanel = new RepositoryNamePanel("namePanel", repositoryModel); namePanel.setEditable(allowEditName); form.add(namePanel); // XXX AccessPolicyPanel is defined later. form.add(new ChoiceOption<String>("head", getString("gb.headRef"), getString("gb.headRefDescription"), new PropertyModel<String>(repositoryModel, "HEAD"), availableRefs)); // // PERMISSIONS // form.add(ownersPalette); form.add(usersPalette); form.add(teamsPalette); // // TICKETS // form.add(new BooleanOption("acceptNewPatchsets", getString("gb.acceptNewPatchsets"), getString("gb.acceptNewPatchsetsDescription"), new PropertyModel<Boolean>(repositoryModel, "acceptNewPatchsets"))); form.add(new BooleanOption("acceptNewTickets", getString("gb.acceptNewTickets"), getString("gb.acceptNewTicketsDescription"), new PropertyModel<Boolean>(repositoryModel, "acceptNewTickets"))); form.add(new BooleanOption("requireApproval", getString("gb.requireApproval"), getString("gb.requireApprovalDescription"), new PropertyModel<Boolean>(repositoryModel, "requireApproval"))); form.add(new ChoiceOption<String>("mergeTo", getString("gb.mergeTo"), getString("gb.mergeToDescription"), new PropertyModel<String>(repositoryModel, "mergeTo"), availableBranches)); form.add(new ChoiceOption<MergeType>("mergeType", getString("gb.mergeType"), getString("gb.mergeTypeDescription"), new PropertyModel<MergeType>(repositoryModel, "mergeType"), Arrays.asList(MergeType.values()))); // // RECEIVE // form.add(new BooleanOption("isFrozen", getString("gb.isFrozen"), getString("gb.isFrozenDescription"), new PropertyModel<Boolean>(repositoryModel, "isFrozen"))); form.add(new BooleanOption("incrementalPushTags", getString("gb.enableIncrementalPushTags"), getString("gb.useIncrementalPushTagsDescription"), new PropertyModel<Boolean>(repositoryModel, "useIncrementalPushTags"))); final CheckBox verifyCommitter = new CheckBox("checkbox", new PropertyModel<Boolean>(repositoryModel, "verifyCommitter")); verifyCommitter.setOutputMarkupId(true); form.add(new BooleanOption("verifyCommitter", getString("gb.verifyCommitter"), getString("gb.verifyCommitterDescription") + "<br/>" + getString("gb.verifyCommitterNote"), verifyCommitter).setIsHtmlDescription(true)); form.add(preReceivePalette); form.add(new BulletListPanel("inheritedPreReceive", getString("gb.inherited"), app().repositories().getPreReceiveScriptsInherited(repositoryModel))); form.add(postReceivePalette); form.add(new BulletListPanel("inheritedPostReceive", getString("gb.inherited"), app().repositories().getPostReceiveScriptsInherited(repositoryModel))); WebMarkupContainer customFieldsSection = new WebMarkupContainer("customFieldsSection"); customFieldsSection.add(customFieldsListView); form.add(customFieldsSection .setVisible(!app().settings().getString(Keys.groovy.customFields, "").isEmpty())); // // FEDERATION // List<FederationStrategy> federationStrategies = new ArrayList<FederationStrategy>( Arrays.asList(FederationStrategy.values())); // federation strategies - remove ORIGIN choice if this repository has no origin. if (StringUtils.isEmpty(repositoryModel.origin)) { federationStrategies.remove(FederationStrategy.FEDERATE_ORIGIN); } form.add(new ChoiceOption<FederationStrategy>("federationStrategy", getString("gb.federationStrategy"), getString("gb.federationStrategyDescription"), new DropDownChoice<FederationStrategy>("choice", new PropertyModel<FederationStrategy>(repositoryModel, "federationStrategy"), federationStrategies, new FederationTypeRenderer()))); form.add(federationSetsPalette); // // SEARCH // form.add(indexedBranchesPalette); // // GARBAGE COLLECTION // boolean gcEnabled = app().settings().getBoolean(Keys.git.enableGarbageCollection, false); int defaultGcPeriod = app().settings().getInteger(Keys.git.defaultGarbageCollectionPeriod, 7); if (repositoryModel.gcPeriod == 0) { repositoryModel.gcPeriod = defaultGcPeriod; } List<Integer> gcPeriods = Arrays.asList(1, 2, 3, 4, 5, 7, 10, 14); form.add(new ChoiceOption<Integer>("gcPeriod", getString("gb.gcPeriod"), getString("gb.gcPeriodDescription"), new DropDownChoice<Integer>("choice", new PropertyModel<Integer>(repositoryModel, "gcPeriod"), gcPeriods, new GCPeriodRenderer())) .setEnabled(gcEnabled)); form.add(new TextOption("gcThreshold", getString("gb.gcThreshold"), getString("gb.gcThresholdDescription"), "span1", new PropertyModel<String>(repositoryModel, "gcThreshold")).setEnabled(gcEnabled)); // // MISCELLANEOUS // form.add(new TextOption("origin", getString("gb.origin"), getString("gb.originDescription"), "span6", new PropertyModel<String>(repositoryModel, "origin")).setEnabled(false)); form.add(new BooleanOption("showRemoteBranches", getString("gb.showRemoteBranches"), getString("gb.showRemoteBranchesDescription"), new PropertyModel<Boolean>(repositoryModel, "showRemoteBranches"))); form.add(new BooleanOption("skipSizeCalculation", getString("gb.skipSizeCalculation"), getString("gb.skipSizeCalculationDescription"), new PropertyModel<Boolean>(repositoryModel, "skipSizeCalculation"))); form.add(new BooleanOption("skipSummaryMetrics", getString("gb.skipSummaryMetrics"), getString("gb.skipSummaryMetricsDescription"), new PropertyModel<Boolean>(repositoryModel, "skipSummaryMetrics"))); List<Integer> maxActivityCommits = Arrays.asList(-1, 0, 25, 50, 75, 100, 150, 200, 250, 500); form.add(new ChoiceOption<Integer>("maxActivityCommits", getString("gb.maxActivityCommits"), getString("gb.maxActivityCommitsDescription"), new DropDownChoice<Integer>("choice", new PropertyModel<Integer>(repositoryModel, "maxActivityCommits"), maxActivityCommits, new MaxActivityCommitsRenderer()))); List<CommitMessageRenderer> renderers = Arrays.asList(CommitMessageRenderer.values()); form.add(new ChoiceOption<CommitMessageRenderer>("commitMessageRenderer", getString("gb.commitMessageRenderer"), getString("gb.commitMessageRendererDescription"), new DropDownChoice<CommitMessageRenderer>("choice", new PropertyModel<CommitMessageRenderer>(repositoryModel, "commitMessageRenderer"), renderers))); metricAuthorExclusions = new Model<String>(ArrayUtils.isEmpty(repositoryModel.metricAuthorExclusions) ? "" : StringUtils.flattenStrings(repositoryModel.metricAuthorExclusions, " ")); form.add(new TextOption("metricAuthorExclusions", getString("gb.metricAuthorExclusions"), getString("gb.metricAuthorExclusions"), "span6", metricAuthorExclusions)); mailingLists = new Model<String>(ArrayUtils.isEmpty(repositoryModel.mailingLists) ? "" : StringUtils.flattenStrings(repositoryModel.mailingLists, " ")); form.add(new TextOption("mailingLists", getString("gb.mailingLists"), getString("gb.mailingLists"), "span6", mailingLists)); // initial enable/disable of permission controls if (repositoryModel.accessRestriction.equals(AccessRestrictionType.NONE)) { // anonymous everything, disable all controls usersPalette.setEnabled(false); teamsPalette.setEnabled(false); verifyCommitter.setEnabled(false); } else { // authenticated something // enable authorization controls verifyCommitter.setEnabled(true); boolean allowFineGrainedControls = repositoryModel.authorizationControl .equals(AuthorizationControl.NAMED); usersPalette.setEnabled(allowFineGrainedControls); teamsPalette.setEnabled(allowFineGrainedControls); } // // ACCESS POLICY PANEL (GENERAL) // AjaxFormChoiceComponentUpdatingBehavior callback = new AjaxFormChoiceComponentUpdatingBehavior() { private static final long serialVersionUID = 1L; @Override protected void onUpdate(AjaxRequestTarget target) { accessPolicyPanel.updateModel(repositoryModel); boolean allowAuthorizationControl = repositoryModel.accessRestriction .exceeds(AccessRestrictionType.NONE); verifyCommitter.setEnabled(allowAuthorizationControl); boolean allowFineGrainedControls = allowAuthorizationControl && repositoryModel.authorizationControl.equals(AuthorizationControl.NAMED); usersPalette.setEnabled(allowFineGrainedControls); teamsPalette.setEnabled(allowFineGrainedControls); if (allowFineGrainedControls) { repositoryModel.authorizationControl = AuthorizationControl.NAMED; } target.add(verifyCommitter); target.add(usersPalette); target.add(teamsPalette); } }; accessPolicyPanel = new AccessPolicyPanel("accessPolicyPanel", repositoryModel, callback); form.add(accessPolicyPanel); // // FORM CONTROLS // form.add(new Button("save")); Button cancel = new Button("cancel") { private static final long serialVersionUID = 1L; @Override public void onSubmit() { if (isCreate) { setResponsePage(RepositoriesPage.class); } else { setResponsePage(SummaryPage.class, WicketUtils.newRepositoryParameter(repositoryModel.name)); } } }; cancel.setDefaultFormProcessing(false); form.add(cancel); // the user can delete if deletions are allowed AND the user is an admin or the personal owner // assigned ownership is not sufficient to allow deletion boolean canDelete = !isCreate && app().repositories().canDelete(repositoryModel) && (user.canAdmin() || user.isMyPersonalRepository(repositoryModel.name)); Link<Void> delete = new Link<Void>("delete") { private static final long serialVersionUID = 1L; @Override public void onClick() { RepositoryModel latestModel = app().repositories().getRepositoryModel(repositoryModel.name); boolean canDelete = app().repositories().canDelete(latestModel); if (canDelete) { if (app().gitblit().deleteRepositoryModel(latestModel)) { info(MessageFormat.format(getString("gb.repositoryDeleted"), latestModel)); if (latestModel.isPersonalRepository()) { // redirect to user's profile page String prefix = app().settings().getString(Keys.git.userRepositoryPrefix, "~"); String username = latestModel.projectPath.substring(prefix.length()); setResponsePage(UserPage.class, WicketUtils.newUsernameParameter(username)); } else { // redirect to server repositories page setResponsePage(RepositoriesPage.class); } } else { error(MessageFormat.format(getString("gb.repositoryDeleteFailed"), latestModel)); } } else { error(MessageFormat.format(getString("gb.repositoryDeleteFailed"), latestModel)); } } }; if (canDelete) { delete.add(new JavascriptEventConfirmation("click", MessageFormat.format(getString("gb.deleteRepository"), repositoryModel))); } form.add(delete.setVisible(canDelete)); add(form); }
From source file:com.modusoperandi.dragonfly.widgets.chart.SettingsPanel.java
License:Open Source License
/** * Instantiates a new settings page./*from w w w . j a va2 s .c o m*/ * * @param id * @param modalWindow */ public SettingsPanel(final String id, final ModalWindow modalWindow) { super(id); configuration = new HashMap<>(); final Form<?> dataForm = new Form<>("dataForm"); add(dataForm); contentDiv = new WebMarkupContainer("contentDiv"); contentDiv.setOutputMarkupId(true); dataForm.add(contentDiv); // //////////////////////////// // Type final RadioChoice<String> typeField = new RadioChoice<String>("type", new PropertyModel<>(this, "type"), Arrays.asList( new String[] { XY, FACET_BAR, SERIES_LINE, FACET_PIE, TIMEWHEEL, HEAT_MAP_RING_MAP })) { private static final long serialVersionUID = 1L; @Override public String getSuffix() { return ""; } }; typeField.add(new AjaxFormChoiceComponentUpdatingBehavior() { private static final long serialVersionUID = 1L; @Override protected void onUpdate(final AjaxRequestTarget target) { type = getComponent().getDefaultModelObjectAsString(); showDivs(); target.add(contentDiv); } }); contentDiv.add(typeField); // //////////////////////////// // Index Name populateIndices(); indexDiv = new WebMarkupContainer("indexDiv"); indexDiv.setOutputMarkupId(true); contentDiv.add(indexDiv); selectIndex = new DropDownChoice<>("dataSet", new PropertyModel<String>(this, "indexName"), indexList); selectIndex.add(new AjaxFormComponentUpdatingBehavior("focus") { private static final long serialVersionUID = 2981822623630720652L; @Override protected void onUpdate(final AjaxRequestTarget target) { if (populateIndices()) { target.add(selectIndex); } } }); selectIndex.add(new AjaxFormComponentUpdatingBehavior("change") { private static final long serialVersionUID = 2981822623630720652L; @Override protected void onUpdate(final AjaxRequestTarget target) { populateFieldsList(numericFieldsList, "double"); populateFieldsList(allFieldsList, null); populateFieldsList(timeFieldsList, "date"); populateFieldsList(locationFieldsList, "geo_point"); if (numericFieldsList.size() > 0) { seriesYField = numericFieldsList.get(0); xField = numericFieldsList.get(0); yField = numericFieldsList.get(0); } if (allFieldsList.size() > 0) { countField = allFieldsList.get(0); pieCountField = allFieldsList.get(0); seriesXField = allFieldsList.get(0); hmrmLabelField = allFieldsList.get(0); } if (timeFieldsList.size() > 0) { twTimeField = timeFieldsList.get(0); hmrmTimeField = timeFieldsList.get(0); } if (locationFieldsList.size() > 0) { hmrmLocationField = locationFieldsList.get(0); } target.add(xSelectField); target.add(ySelectField); target.add(countSelectField); target.add(seriesXSelectField); target.add(seriesYSelectField); target.add(pieCountSelectField); target.add(twTimeSelectField); target.add(hmrmTimeSelectField); target.add(hmrmLocationSelectField); target.add(hmrmLabelSelectField); } }); indexDiv.add(selectIndex); // //////////////////////////// // Type Panels configureXyDiv(); configureFacetBarDiv(); configureSeriesDiv(); configureFacetPieDiv(); configureTimewheelDiv(); configureHeatMapRingMapDiv(); showDivs(); // //////////////////////////// // Buttons dataForm.add(new AjaxButton("okButton") { private static final long serialVersionUID = 1L; @Override protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) { configuration.clear(); configuration.put("Index", indexName); configuration.put("Type", type); switch (type) { case XY: configuration.put("X", xField); configuration.put("Y", yField); break; case FACET_BAR: configuration.put("CountField", countField); configuration.put("MaxItems", maxItems); break; case SERIES_LINE: configuration.put("X", seriesXField); configuration.put("Y", seriesYField); break; case FACET_PIE: configuration.put("CountField", pieCountField); configuration.put("MaxItems", pieMaxItems); break; case TIMEWHEEL: configuration.put("TimeScale", twTimeScaleField); configuration.put("TimeField", twTimeField); configuration.put("ContrastScale", twContrastScaleField); break; case HEAT_MAP_RING_MAP: configuration.put("TimeScale", hmrmTimeScaleField); configuration.put("TimeField", hmrmTimeField); configuration.put("LocationField", hmrmLocationField); configuration.put("LabelField", hmrmLabelField); break; } ok = true; modalWindow.close(target); } }); dataForm.add(new AjaxButton("cancelButton") { private static final long serialVersionUID = 1L; @Override protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) { configuration.clear(); ok = false; modalWindow.close(target); } }); }
From source file:com.modusoperandi.dragonfly.widgets.choropleth.ChoroplethWidgetPage.java
License:Open Source License
private void initialize() { // //////////////////////////// // Form/* ww w .ja v a 2s. c om*/ final Form<?> queryForm = new Form<>("queryForm"); add(queryForm); // //////////////////////////// // From Data Set populateIndices(); fromIndex = new DropDownChoice<>("fromDataSetName", new PropertyModel<String>(this, "fromIndexName"), fromIndexList); fromIndex.setOutputMarkupId(true); fromIndex.add(new AjaxFormComponentUpdatingBehavior("focus") { private static final long serialVersionUID = 2981822623630720652L; @Override protected void onUpdate(final AjaxRequestTarget target) { if (populateIndices()) { target.add(fromIndex); } } }); fromIndex.add(new AjaxFormComponentUpdatingBehavior("change") { private static final long serialVersionUID = 2981822623630720652L; @Override protected void onUpdate(final AjaxRequestTarget target) { populateFieldLists(); target.add(latField); target.add(lonField); target.add(valueField); } }); queryForm.add(fromIndex); // /////////////////////////////// // To Data Set queryField = new TextField<>("toDataSetName", new PropertyModel<>(this, "toIndexName")); queryForm.add(queryField); final RadioChoice<String> dataSetAction = new RadioChoice<String>("dataSetAction", new PropertyModel<>(this, "indexAction"), Arrays.asList(new String[] { OVERWRITE, APPEND })) { private static final long serialVersionUID = 1L; @Override public String getSuffix() { return ""; } }; dataSetAction.add(new AjaxFormChoiceComponentUpdatingBehavior() { private static final long serialVersionUID = 1L; @Override protected void onUpdate(final AjaxRequestTarget target) { indexAction = getComponent().getDefaultModelObjectAsString(); } }); queryForm.add(dataSetAction); // //////////////////////////// // Filter final TextField<String> filterField = new TextField<>("filter", new PropertyModel<String>(this, "filter")); queryForm.add(filterField); // /////////////////////////////// // Coordinates latField = new DropDownChoice<>("lat", new PropertyModel<String>(this, "lat"), fieldList); latField.setOutputMarkupId(true); queryForm.add(latField); lonField = new DropDownChoice<>("lon", new PropertyModel<String>(this, "lon"), fieldList); lonField.setOutputMarkupId(true); queryForm.add(lonField); // /////////////////////////////// // Value valueField = new DropDownChoice<>("value", new PropertyModel<String>(this, "value"), fieldList); valueField.setOutputMarkupId(true); queryForm.add(valueField); // ////////////////////////////// // Limits queryForm.add(new TextField<>("upperLimit", new PropertyModel<>(this, "upperLimit"))); queryForm.add(new TextField<>("lowerLimit", new PropertyModel<>(this, "lowerLimit"))); // ////////////////////////////// // Color Action final RadioChoice<String> colorAction = new RadioChoice<String>("colorAction", new PropertyModel<>(this, "colorActionStr"), Arrays.asList(new String[] { AVERAGE, MIN, MAX, TOTAL, COUNT })) { private static final long serialVersionUID = 1L; @Override public String getSuffix() { return ""; } }; colorAction.add(new AjaxFormChoiceComponentUpdatingBehavior() { private static final long serialVersionUID = 1L; @Override protected void onUpdate(final AjaxRequestTarget target) { colorActionStr = getComponent().getDefaultModelObjectAsString(); } }); queryForm.add(colorAction); // //////////////////////////// // File // Populate the drop down list with the files on the server getFileList(fileList, Arrays.asList(".json"), null); selectFile = new DropDownChoice<>("fileName", new PropertyModel<String>(this, "fileName"), fileList); queryForm.add(selectFile); // /////////////////////////////// // Search queryForm.add(new AnalyzeAjaxButton()); }
From source file:com.modusoperandi.dragonfly.widgets.map.MapSettingsPanel.java
License:Open Source License
/** * Instantiates a new map settings page. * //from w w w.j a v a 2 s.c o m * @param id * @param modalWindow */ public MapSettingsPanel(final String id, final ModalWindow modalWindow) { super(id); populateWmsPresetList(); configuration = new HashMap<>(); final Form<?> dataForm = new Form<>("dataForm"); add(dataForm); contentDiv = new WebMarkupContainer("contentDiv"); contentDiv.setOutputMarkupId(true); dataForm.add(contentDiv); // //////////////////////////// // Type final RadioChoice<String> typeField = new RadioChoice<String>("type", new PropertyModel<>(this, "type"), Arrays.asList(new String[] { HEAT_MAP, GEO_JSON, WMS })) { private static final long serialVersionUID = 1L; @Override public String getSuffix() { return ""; } }; typeField.add(new AjaxFormChoiceComponentUpdatingBehavior() { private static final long serialVersionUID = 1L; @Override protected void onUpdate(final AjaxRequestTarget target) { type = getComponent().getDefaultModelObjectAsString(); showDivs(); target.add(contentDiv); target.add(heatmapDiv); target.add(geojsonDiv); target.add(wmsDiv); } }); contentDiv.add(typeField); // //////////////////////////// // Index Name populateIndices(); indexDiv = new WebMarkupContainer("indexDiv"); indexDiv.setOutputMarkupId(true); contentDiv.add(indexDiv); selectIndex = new DropDownChoice<>("dataSet", new PropertyModel<String>(this, "indexName"), indexList); selectIndex.setOutputMarkupId(true); selectIndex.add(new AjaxFormComponentUpdatingBehavior("focus") { private static final long serialVersionUID = 2981822623630720652L; @Override protected void onUpdate(final AjaxRequestTarget target) { if (populateIndices()) { target.add(selectIndex); } } }); selectIndex.add(new AjaxFormComponentUpdatingBehavior("change") { private static final long serialVersionUID = 2981822623630720652L; @Override protected void onUpdate(final AjaxRequestTarget target) { populateFieldsList(locationFieldList, "geo_point"); if (locationFieldList.size() > 0) { hmLocation = locationFieldList.get(0); } populateFieldsList(stringFieldList, "string"); if (stringFieldList.size() > 0) { geojson = stringFieldList.get(0); } target.add(geojsonField); target.add(hmLocationField); } }); indexDiv.add(selectIndex); // //////////////////////////// // Type Panels configureHeatmapDiv(); configureGeojsonDiv(); configureWmsDiv(); showDivs(); // //////////////////////////// // Buttons dataForm.add(new AjaxButton("okButton") { private static final long serialVersionUID = 1L; @Override protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) { configuration.clear(); switch (type) { case HEAT_MAP: configuration.put("Type", HEAT_MAP); configuration.put("Index", indexName); configuration.put("Location", hmLocation); configuration.put("HmTransparency", hmTransparency); configuration.put("HmRadius", hmRadius); break; case GEO_JSON: configuration.put("Type", GEO_JSON); configuration.put("Index", indexName); configuration.put("GeojsonField", geojson); break; case WMS: configuration.put("Type", WMS); configuration.put("TileURL", tileUrl); configuration.put("Name", wmsName); configuration.put("Format", wmsFormat); configuration.put("Attribution", wmsAttribution); configuration.put("Layers", wmsLayers); break; } ok = true; modalWindow.close(target); } }); dataForm.add(new AjaxButton("cancelButton") { private static final long serialVersionUID = 1L; @Override protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) { configuration.clear(); ok = false; modalWindow.close(target); } }); }
From source file:com.userweave.module.methoden.questionnaire.page.conf.question.QuestionConfigurationPanel.java
License:Open Source License
/** * Creates an ajax form updating behavior for choices. * //from ww w . j a v a 2 s . c o m * @return * Update behavior for ajax form choice components. */ protected AjaxFormChoiceComponentUpdatingBehavior getChoiceUpdateBehavior() { return new AjaxFormChoiceComponentUpdatingBehavior() { private static final long serialVersionUID = 1L; @Override protected void onUpdate(AjaxRequestTarget target) { target.addComponent(QuestionConfigurationPanel.this.get("feedbackPanel")); addQuestionToConfigurationAndSave(configurationId); } @Override protected void onBind() { try { super.onBind(); } catch (Exception e) { // This behavior can only be attached to Choices. // If we bind it to another element, the method // throws a runtime exception. Since we don't want // that, catch the exception here. } } }; }
From source file:com.userweave.module.methoden.questionnaire.page.grouping.multiplepossibleanswers.MultiplePossibleAnswersGroupingPanel.java
License:Open Source License
public MultiplePossibleAnswersGroupingPanel(String id, QuestionWithMultiplePossibleAnswers question, T group, final Locale locale, GroupAddedCallback groupAddedCallback) { super(id, group, locale, groupAddedCallback); questionId = question.getId();//from w w w. j a v a 2s . c om CheckGroup answers = new CheckGroup("answers", new PropertyModel(MultiplePossibleAnswersGroupingPanel.this, "answers")); if (isOnChangeAjaxBehaviorNeeded()) { answers.add(new AjaxFormChoiceComponentUpdatingBehavior() { @Override protected void onUpdate(AjaxRequestTarget target) { MultiplePossibleAnswersGroupingPanel.this.onUpdate(target); } }); } add(answers); IModel possibleAnswersModel = new LoadableDetachableModel() { @Override protected Object load() { QuestionWithMultiplePossibleAnswers question = (QuestionWithMultiplePossibleAnswers) questionDao .findById(questionId); return question.getPossibleAnswers(); } }; answers.add(new ListView("values", possibleAnswersModel) { @Override protected void populateItem(ListItem item) { item.add(new Check("check", item.getModel())); item.add(new Label("content", new LocalizedModel((Serializable) item.getModelObject(), locale))); }; }); }
From source file:com.userweave.module.methoden.questionnaire.page.grouping.rating.RatingGroupingPanel.java
License:Open Source License
public RatingGroupingPanel(String id, Integer numberOfRatingSteps, T group, final Locale locale, GroupAddedCallback groupAddedCallback, boolean groupMissingValues) { super(id, group, locale, groupAddedCallback); this.group = group; setDefaultModel(new CompoundPropertyModel(group)); final FormComponent lowerBoundTextField = new TextField("lowerBound") { @Override/* ww w .ja va 2 s . c om*/ public boolean isVisible() { return operator != null && !operator.equals(Operator.LESS) && !operator.equals(Operator.MISSING_VALUE); } }; setValidation(lowerBoundTextField, numberOfRatingSteps); add(lowerBoundTextField); final FormComponent upperBoundTextField = new TextField("upperBound") { @Override public boolean isVisible() { return operator != null && !operator.equals(Operator.GREATER) && !operator.equals(Operator.MISSING_VALUE); } }; setValidation(upperBoundTextField, numberOfRatingSteps); add(upperBoundTextField); final Component and = new WebMarkupContainer("and") { @Override public boolean isVisible() { return operator != null && operator.equals(Operator.BETWEEN) && !operator.equals(Operator.MISSING_VALUE); } }.setOutputMarkupPlaceholderTag(true); add(and); List<Operator> operators = new ArrayList<Operator>(); for (Operator op : Operator.values()) { if (!op.equals(Operator.MISSING_VALUE) || groupMissingValues) { operators.add(op); } } add(new RadioChoice("operator", new PropertyModel(this, "operator"), operators, new ChoiceRenderer("name")) .setRequired(true).add(new AjaxFormChoiceComponentUpdatingBehavior() { @Override protected void onUpdate(AjaxRequestTarget target) { target.addComponent(lowerBoundTextField); target.addComponent(upperBoundTextField); target.addComponent(and); } }) ); }