List of usage examples for org.apache.wicket.extensions.ajax.markup.html.modal ModalWindow close
public void close(final IPartialPageRequestHandler target)
From source file:org.apache.syncope.console.pages.VirSchemaModalPage.java
License:Apache License
@Override public void setSchemaModalPage(final PageReference pageRef, final ModalWindow window, VirSchemaTO schema, final boolean createFlag) { if (schema == null) { schema = new VirSchemaTO(); }//from ww w . j a va2 s .com final Form<VirSchemaTO> schemaForm = new Form<VirSchemaTO>(FORM); schemaForm.setModel(new CompoundPropertyModel<VirSchemaTO>(schema)); final AjaxTextFieldPanel name = new AjaxTextFieldPanel("name", getString("name"), new PropertyModel<String>(schema, "name")); name.addRequiredLabel(); name.setEnabled(createFlag); final AjaxCheckBoxPanel readonly = new AjaxCheckBoxPanel("readonly", getString("readonly"), new PropertyModel<Boolean>(schema, "readonly")); final AjaxButton submit = new IndicatingAjaxButton(APPLY, new ResourceModel(SUBMIT)) { private static final long serialVersionUID = -958724007591692537L; @Override protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) { VirSchemaTO schemaTO = (VirSchemaTO) form.getDefaultModelObject(); try { if (createFlag) { schemaRestClient.createVirSchema(kind, schemaTO); } else { schemaRestClient.updateVirSchema(kind, schemaTO); } if (pageRef.getPage() instanceof BasePage) { ((BasePage) pageRef.getPage()).setModalResult(true); } window.close(target); } catch (SyncopeClientException e) { error(getString(Constants.ERROR) + ": " + e.getMessage()); feedbackPanel.refresh(target); } } @Override protected void onError(final AjaxRequestTarget target, final Form<?> form) { feedbackPanel.refresh(target); } }; final AjaxButton cancel = new IndicatingAjaxButton(CANCEL, new ResourceModel(CANCEL)) { private static final long serialVersionUID = -958724007591692537L; @Override protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) { window.close(target); } }; cancel.setDefaultFormProcessing(false); String allowedRoles = createFlag ? xmlRolesReader.getAllAllowedRoles("Schema", "create") : xmlRolesReader.getAllAllowedRoles("Schema", "update"); MetaDataRoleAuthorizationStrategy.authorize(submit, ENABLE, allowedRoles); schemaForm.add(name); schemaForm.add(readonly); schemaForm.add(submit); schemaForm.add(cancel); add(schemaForm); }
From source file:org.dcm4chee.web.war.ae.CreateOrEditAETPage.java
License:LGPL
public CreateOrEditAETPage(final ModalWindow window, final AE ae, final AEListPanel panel) { super();//from w w w. jav a2 s.c o m add(JavascriptPackageResource.getHeaderContribution(BaseWicketPage.class, "web3-utils.js")); final String oldType = ae.getAeGroup(); final String oldTitle = ae.getPk() == -1 ? null : ae.getTitle(); msgWin.setTitle(""); add(msgWin); add(new WebMarkupContainer("create-ae-title").setVisible(ae.getPk() == -1)); add(new WebMarkupContainer("edit-ae-title").setVisible(ae.getPk() != -1)); setOutputMarkupId(true); final BaseForm form = new BaseForm("form"); form.setResourceIdPrefix("ae."); add(form); CompoundPropertyModel<AE> model = new CompoundPropertyModel<AE>(ae); form.setDefaultModel(model); form.addLabeledTextField("title").add(new AETitleValidator()).setRequired(true) .add(FocusOnLoadBehaviour.newFocusAndSelectBehaviour()); form.add(new Label("type.label", new StringResourceModel("ae.type.label", CreateOrEditAETPage.this, null, new Object[] { 1 }))); AELicenseProviderSPI provider = AELicenseProviderManager.get(null).getProvider(); List<String> aetTypes = new ArrayList<String>( provider.getAETypes(WebCfgDelegate.getInstance().getAETTypes())); if ((ae.getPk() != -1) && !aetTypes.contains(oldType)) aetTypes.add(oldType); boolean nullAeTypeAllowed = aetTypes.remove(null); form.add((new DropDownChoice<String>("type-selection", new PropertyModel<String>(ae, "aeGroup"), aetTypes)) .setNullValid(nullAeTypeAllowed).setRequired(!nullAeTypeAllowed) .add(new AbstractValidator<String>() { private static final long serialVersionUID = 1L; @Override protected void onValidate(IValidatable<String> validatable) { String newType = validatable.getValue(); if ((ae.getPk() != -1) && (oldType == null ? newType == null : oldType.equals(newType))) return; if (!AELicenseProviderManager.get(null).getProvider().allowAETCreation(newType)) { HashMap<String, Object> vars = new HashMap<String, Object>(); vars.put("type", newType); this.error(validatable, "ae.error.aetTypeDenied", vars); } } })); form.addLabeledTextField("hostName").setRequired(true); form.addLabeledNumberTextField("port").add(new RangeValidator<Integer>(1, 65535)); final CipherModel cipherModel = new CipherModel(ae, 3); form.add(new Label("ciphers1.label", new StringResourceModel("ae.ciphers", CreateOrEditAETPage.this, null, new Object[] { 1 }))); form.add(new DropDownChoice<String>("ciphersuite1", cipherModel.getSingleCipherModel(0), CyphersuiteUtils.AVAILABLE_CIPHERSUITES)); form.add(new Label("ciphers2.label", new StringResourceModel("ae.ciphers", CreateOrEditAETPage.this, null, new Object[] { 2 }))); form.add(new DropDownChoice<String>("ciphersuite2", cipherModel.getSingleCipherModel(1), CyphersuiteUtils.AVAILABLE_CIPHERSUITES)); form.add(new Label("ciphers3.label", new StringResourceModel("ae.ciphers", CreateOrEditAETPage.this, null, new Object[] { 3 }))); form.add(new DropDownChoice<String>("ciphersuite3", cipherModel.getSingleCipherModel(2), CyphersuiteUtils.AVAILABLE_CIPHERSUITES)); form.addLabeledTextField("description"); form.addLabeledTextField("issuerOfPatientID"); form.addLabeledTextField("issuerOfAccessionNumber"); form.addLabeledDropDownChoice("fileSystemGroupID", null, ((FileSystemHomeLocal) JNDIUtils.lookup(FileSystemHomeLocal.JNDI_NAME)).listGroupIDs()) .setNullValid(true); form.addLabeledTextField("wadoURL").add(new UrlValidator1().addAllowedNoneURLValue("DICOM_QR_ONLY")); //Wicket UrlValidator doesn't accept http://hostname:8080/web! form.addLabeledTextField("userID"); form.add(new Label("password.label", new ResourceModel("ae.password"))); form.add(new PasswordTextField("password").setResetPassword(false).setRequired(false)); form.addLabeledTextField("stationName"); form.addLabeledTextField("institution"); form.addLabeledTextField("department"); form.add(new Label("installed.label", new ResourceModel("ae.installed"))); form.add(new AjaxCheckBox("installed") { private static final long serialVersionUID = 1L; @Override protected void onUpdate(AjaxRequestTarget target) { } }); form.add(new Label("emulateMPPS.label", new ResourceModel("ae.emulateMPPS"))); form.add(new AjaxCheckBox("emulateMPPS", new IModel<Boolean>() { private static final long serialVersionUID = 1L; public void detach() { } public Boolean getObject() { return panel.getMppsEmulatedAETs().contains(ae.getTitle()); } public void setObject(Boolean object) { if (object) { panel.getMppsEmulatedAETs().add(ae.getTitle()); } else { panel.getMppsEmulatedAETs().remove(ae.getTitle()); } } }) { private static final long serialVersionUID = 1L; @Override protected void onUpdate(AjaxRequestTarget target) { target.addComponent(this); } }.setOutputMarkupId(true).add(new TooltipBehaviour("ae."))); form.add(new AjaxFallbackButton("submit", new ResourceModel("saveBtn"), form) { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { try { if (ae.getPk() == -1) { try { ((AEHomeLocal) JNDIUtils.lookup(AEHomeLocal.JNDI_NAME)).findByTitle(ae.getTitle()); msgWin.show(target, new ResourceModel("ae.error.duplicateAE").wrapOnAssignment(this)); return; } catch (Exception ignore) { } } AEDelegate.getInstance().updateOrCreate(ae); AEDelegate.getInstance().notifyAEChange(oldTitle, ae.getTitle()); panel.updateAETList(); target.addComponent(form); window.close(target); } catch (Exception e) { msgWin.show(target, new ResourceModel( ae.getPk() == -1 ? "ae.error.create.failed" : "ae.error.update.failed") .wrapOnAssignment(this)); } } @Override protected void onError(AjaxRequestTarget target, Form<?> form) { if (target != null) target.addComponent(form); } }); form.add(new AjaxFallbackButton("cancel", new ResourceModel("cancelBtn"), form) { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { window.close(target); } }.setDefaultFormProcessing(false)); final DicomEchoWindow mw = new DicomEchoWindow("echoPanel", true); mw.setWindowClosedCallback(new WindowClosedCallback() { private static final long serialVersionUID = 1L; public void onClose(AjaxRequestTarget target) { cipherModel.update(); target.addComponent(CreateOrEditAETPage.this); } }); add(mw); form.add(new AjaxButton("echo", new ResourceModel("ae.echoButton")) { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { mw.show(target, ae); } @Override protected void onError(AjaxRequestTarget target, Form<?> form) { if (target != null) target.addComponent(form); } }); add(new Label("result-message", new Model<String>(""))); }
From source file:org.dcm4chee.web.war.common.EditDicomObjectPanel.java
License:LGPL
public EditDicomObjectPanel(String id, final ModalWindow window, DicomObject dcmObj, String attrModelName) { super(id);/*from ww w.j a va 2 s. co m*/ editable = new EditableDicomAttributes(attrModelName); add(mw); try { add(new Label("title", new ResourceModel("dicom.edit.title." + attrModelName))); } catch (Exception x) { add(new Label("title", new Model<String>("DICOM Edit"))); } add(new AjaxCheckBox("allowAll", new PropertyModel<Boolean>(editable, "allowAll")) { private static final long serialVersionUID = 1L; @Override protected void onUpdate(AjaxRequestTarget target) { System.out.println("allowAll changed: allowAll" + editable.isAllowAll()); target.addComponent(table); } }.add(new SecurityBehavior("edit:allowAll"))); add(new Label("allowAllLabel", new ResourceModel("edit.allowAll")) .add(new SecurityBehavior("edit:allowAll"))); this.dcmObj = new BasicDicomObject(); dcmObj.copyTo(this.dcmObj); Form<?> form = new Form<Object>("form"); add(form); table = new WebMarkupContainer("table"); addHdrLabels(table); table.setOutputMarkupId(true); form.add(table); RepeatingView rv = new RepeatingView("elements") { private static final long serialVersionUID = 1L; @Override protected void onPopulate() { removeAll(); addDicomObject(this, EditDicomObjectPanel.this.dcmObj, "", new int[0]); } }; table.add(rv); form.add(new AjaxFallbackButton("submit", new ResourceModel("saveBtn"), form) { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { try { EditDicomObjectPanel.this.onSubmit(); window.close(target); } catch (WicketExceptionWithMsgKey e) { resultMessage.setObject(this.getString(e.getMsgKey())); target.addComponent(form); } catch (Exception e) { resultMessage.setObject(e.getLocalizedMessage()); target.addComponent(form); } } @Override protected void onError(AjaxRequestTarget target, Form<?> form) { target.addComponent(form); } }); form.add(new AjaxFallbackButton("cancel", new ResourceModel("cancelBtn"), form) { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { EditDicomObjectPanel.this.onCancel(); window.close(target); } }.setDefaultFormProcessing(false)); form.add(new Label("result-message", (resultMessage = new Model<String>("")))); }
From source file:org.dcm4chee.web.war.common.SimpleEditDicomObjectPanel.java
License:LGPL
public SimpleEditDicomObjectPanel(String id, final ModalWindow window, AbstractDicomModel dcmModel, String title, final int[][] tagPaths, final boolean close, IModel<Boolean> useFnGn) { super(id);//from w w w .j a v a 2s . c o m this.setOutputMarkupId(true); this.useFnGn = useFnGn; window.setCloseButtonCallback(new CloseButtonCallback() { private static final long serialVersionUID = 1L; public boolean onCloseButtonClicked(AjaxRequestTarget target) { onClose(); return true; } }); this.dcmObj = new BasicDicomObject(); this.tagPaths = tagPaths; dcmModel.getDataset().copyTo(this.dcmObj); add(new Label("title", new Model<String>(title))); add(form = new BaseForm("form")); form.setOutputMarkupId(true); addHdrLabels(form); RepeatingView rv = new RepeatingView("elements") { private static final long serialVersionUID = 1L; @Override protected void onPopulate() { removeAll(); addDicomObject(this, tagPaths); } }; form.add(rv); form.add(new AjaxFallbackButton("submit", new ResourceModel("saveBtn"), form) { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { try { SimpleEditDicomObjectPanel.this.onSubmit(); getPage().setOutputMarkupId(true); target.addComponent(getPage()); if (close) window.close(target); } catch (WicketExceptionWithMsgKey e) { resultMessage.setObject(this.getString(e.getMsgKey())); target.addComponent(SimpleEditDicomObjectPanel.this); } catch (Exception e) { resultMessage.setObject(e.getLocalizedMessage()); target.addComponent(SimpleEditDicomObjectPanel.this); } } @Override protected void onError(AjaxRequestTarget target, Form<?> form) { BaseForm.addFormComponentsToAjaxRequestTarget(target, form); } }); form.add(new AjaxFallbackButton("cancel", new ResourceModel("cancelBtn"), form) { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { SimpleEditDicomObjectPanel.this.onCancel(); window.close(target); } }.setDefaultFormProcessing(false)); form.add(new Label("result-message", (resultMessage = new Model<String>("")))); }
From source file:org.dcm4chee.web.war.folder.MppsForwardPanel.java
License:LGPL
public MppsForwardPanel(String id, final ModalWindow modalWindow, final PPSModel ppsModel) { super(id);/*from www . j a v a 2 s . co m*/ if (MppsForwardPanel.CSS != null) add(CSSPackageResource.getHeaderContribution(MppsForwardPanel.CSS)); initDestinationAETs(); add(new Label("title", new ResourceModel("forward.title"))); final BaseForm form = new BaseForm("form"); form.setResourceIdPrefix("forward."); add(form); add(new Label("id.label", new ResourceModel("forward.pps.id.label"))); add(new Label("id", ppsModel.getId())); add(new Label("description.label", new ResourceModel("forward.pps.description.label"))); add(new Label("description", ppsModel.getDescription())); add(new Label("accessionNumber.label", new ResourceModel("forward.pps.accessionNumber.label"))); add(new Label("accessionNumber", ppsModel.getAccessionNumber())); add(new Label("spsId.label", new ResourceModel("forward.pps.spsId.label"))); add(new Label("spsId", ppsModel.getSpsid())); add(new Label("modality.label", new ResourceModel("forward.pps.modality.label"))); add(new Label("modality", ppsModel.getModality())); add(new Label("stationAET.label", new ResourceModel("forward.pps.stationAET.label"))); add(new Label("stationAET", ppsModel.getStationAET())); add(new Label("stationName.label", new ResourceModel("forward.pps.stationName.label"))); add(new Label("stationName", ppsModel.getStationName())); add(new Label("status.label", new ResourceModel("forward.pps.status.label"))); add(new Label("status", ppsModel.getStatus())); form.add(new DropDownChoice<AE>("destinationAETs", destinationModel, destinationAETs, new IChoiceRenderer<AE>() { private static final long serialVersionUID = 1L; public Object getDisplayValue(AE ae) { if (ae.getDescription() == null) { return ae.getTitle(); } else { return ae.getTitle() + "(" + ae.getDescription() + ")"; } } public String getIdValue(AE ae, int idx) { return String.valueOf(idx); } }).setNullValid(false).setOutputMarkupId(true)); form.addLabel("destinationAETsLabel"); form.addLabel("forwardResultLabel"); form.add(resultLabel.setOutputMarkupId(true)); AjaxButton forwardBtn = new IndicatingAjaxButton("forward") { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { done = true; success = false; result = getString("forward.forwardResult.default"); try { result = MppsForwardDelegate.getInstance().forwardMPPS(ppsModel, destinationAET.getTitle()); success = result.endsWith("COMPLETED SUCCESSFULLY"); } catch (Exception e) { log.error("Error forwarding mpps", e); result = "Error: " + e.getCause().getMessage(); success = false; } target.addComponent(resultLabel); } @Override protected void onError(AjaxRequestTarget target, Form<?> form) { target.addComponent(resultLabel); BaseForm.addInvalidComponentsToAjaxRequestTarget(target, form); } }; forwardBtn.setModel(new ResourceModel("forward.forwardBtn.text")); form.add(forwardBtn); form.add(new AjaxButton("close", new ResourceModel("closeBtn")) { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { modalWindow.close(target); } @Override protected void onError(AjaxRequestTarget target, Form<?> form) { modalWindow.close(target); } }).setOutputMarkupId(true).add(FocusOnLoadBehaviour.newSimpleFocusBehaviour()); setOutputMarkupId(true); }
From source file:org.dcm4chee.web.war.folder.webviewer.WebviewerSelectionPage.java
License:LGPL
public WebviewerSelectionPage(AbstractDicomModel model, WebviewerLinkProvider[] providers, final ModalWindow modalWindow, final WebviewerLinkClickedCallback callback) { super();/*from www. ja v a 2 s . c o m*/ add(new Label("header", new ResourceModel("webviewer.selection.header"))); add(new Label("info", model.toString())); RepeatingView rv = new RepeatingView("repeater"); add(rv); WebMarkupContainer mc; for (int i = 0; i < providers.length; i++) { final WebviewerLinkProvider provider = providers[i]; final String url = Webviewer.getUrlForModel(model, provider); if (url != null) { mc = new WebMarkupContainer(rv.newChildId()); ExternalLink link = new ExternalLink("link", url, provider.getName()); if (!provider.hasOwnWindow()) { link.setPopupSettings(new PopupSettings(PageMap.forName(provider.getName()), PopupSettings.RESIZABLE | PopupSettings.SCROLLBARS)); } if (modalWindow != null || callback != null) { link.add(new AjaxEventBehavior("onclick") { private static final long serialVersionUID = 1L; @Override protected void onEvent(AjaxRequestTarget target) { if (modalWindow != null) { modalWindow.close(target); } if (callback != null) { callback.linkClicked(target); } } @Override protected CharSequence generateCallbackScript(CharSequence partialCall) { CharSequence script = super.generateCallbackScript(partialCall); if (provider.hasOwnWindow()) { script = Webviewer.getSendHttpRequestJavascript(url) + script + "return false;"; } return script; } }); } mc.add(link); rv.add(mc); } } }
From source file:org.dcm4chee.wizard.edit.CreateOrEditApplicationEntityPage.java
License:LGPL
public CreateOrEditApplicationEntityPage(final ModalWindow window, final ApplicationEntityModel aeModel, final ConfigTreeNode deviceNode) { super();/*from ww w. j a va2s .c o m*/ add(new WebMarkupContainer("create-applicationEntity-title").setVisible(aeModel == null)); add(new WebMarkupContainer("edit-applicationEntity-title").setVisible(aeModel != null)); setOutputMarkupId(true); final ExtendedForm form = new ExtendedForm("form"); form.setResourceIdPrefix("dicom.edit.applicationEntity."); add(form); installedRendererChoices = new ArrayList<String>(); installedRendererChoices .add(new ResourceModel("dicom.installed.true.text").wrapOnAssignment(this).getObject()); installedRendererChoices .add(new ResourceModel("dicom.installed.false.text").wrapOnAssignment(this).getObject()); ArrayList<ConnectionModel> connectionReferences = new ArrayList<ConnectionModel>(); try { oldAETitle = aeModel == null ? null : aeModel.getApplicationEntity().getAETitle(); isProxy = (((DeviceModel) deviceNode.getModel()).getDevice() .getDeviceExtension(ProxyDeviceExtension.class) != null); hl7Applications = Arrays.asList(ConfigTreeProvider.get().getUniqueHL7ApplicationNames()); connectionReferencesModel = new Model<ArrayList<ConnectionModel>>(); connectionReferencesModel.setObject(new ArrayList<ConnectionModel>()); for (Connection connection : ((DeviceModel) deviceNode.getModel()).getDevice().listConnections()) { ConnectionModel connectionReference = new ConnectionModel(connection, 0); connectionReferences.add(connectionReference); if (aeModel != null && aeModel.getApplicationEntity().getConnections().contains(connection)) connectionReferencesModel.getObject().add(connectionReference); } proxyPIXConsumerApplicationModel = Model.of(); remotePIXManagerApplicationModel = Model.of(); fallbackDestinationAETModel = Model.of(); if (aeModel == null) { aeTitleModel = Model.of(); associationAcceptorModel = Model.of(); associationInitiatorModel = Model.of(); acceptDataOnFailedNegotiationModel = Model.of(false); enableAuditLogModel = Model.of(false); spoolDirectoryModel = Model.of(); deleteFailedDataWithoutRetryConfigurationModel = Model.of(false); mergeStgCmtMessagesUsingANDLogicModel = Model.of(false); applicationClustersModel = new StringArrayModel(null); descriptionModel = Model.of(); installedModel = Model.of(); calledAETitlesModel = new StringArrayModel(null); callingAETitlesModel = new StringArrayModel(null); supportedCharacterSetsModel = new StringArrayModel(null); vendorDataModel = Model.of("size 0"); } else { ProxyAEExtension proxyAEExtension = aeModel.getApplicationEntity() .getAEExtension(ProxyAEExtension.class); aeTitleModel = Model.of(aeModel.getApplicationEntity().getAETitle()); associationAcceptorModel = Model.of(aeModel.getApplicationEntity().isAssociationAcceptor()); associationInitiatorModel = Model.of(aeModel.getApplicationEntity().isAssociationInitiator()); acceptDataOnFailedNegotiationModel = Model .of(isProxy ? proxyAEExtension.isAcceptDataOnFailedAssociation() : false); enableAuditLogModel = Model.of(isProxy ? proxyAEExtension.isEnableAuditLog() : false); spoolDirectoryModel = Model.of(isProxy ? proxyAEExtension.getSpoolDirectory() : null); deleteFailedDataWithoutRetryConfigurationModel = Model .of(isProxy ? proxyAEExtension.isDeleteFailedDataWithoutRetryConfiguration() : false); mergeStgCmtMessagesUsingANDLogicModel = Model .of(isProxy ? proxyAEExtension.isMergeStgCmtMessagesUsingANDLogic() : false); applicationClustersModel = new StringArrayModel( aeModel.getApplicationEntity().getApplicationClusters()); descriptionModel = Model.of(aeModel.getApplicationEntity().getDescription()); installedModel = Model.of(aeModel.getApplicationEntity().getInstalled()); calledAETitlesModel = new StringArrayModel( aeModel.getApplicationEntity().getPreferredCalledAETitles()); callingAETitlesModel = new StringArrayModel( aeModel.getApplicationEntity().getPreferredCallingAETitles()); supportedCharacterSetsModel = new StringArrayModel( aeModel.getApplicationEntity().getSupportedCharacterSets()); vendorDataModel = Model.of("size " + aeModel.getApplicationEntity().getVendorData().length); if (isProxy) { proxyPIXConsumerApplicationModel = Model.of(proxyAEExtension.getProxyPIXConsumerApplication()); remotePIXManagerApplicationModel = Model.of(proxyAEExtension.getRemotePIXManagerApplication()); fallbackDestinationAETModel = Model.of(proxyAEExtension.getFallbackDestinationAET()); } } } catch (ConfigurationException ce) { log.error(this.getClass().toString() + ": " + "Error retrieving application entity data: " + ce.getMessage()); log.debug("Exception", ce); throw new ModalWindowRuntimeException(ce.getLocalizedMessage()); } form.add(new Label("aeTitle.label", new ResourceModel("dicom.edit.applicationEntity.aeTitle.label"))) .add(new TextField<String>("aeTitle", aeTitleModel) .add(new AETitleValidator(aeTitleModel.getObject())).setRequired(true) .add(FocusOnLoadBehavior.newFocusAndSelectBehaviour())); form.add(new Label("associationAcceptor.label", new ResourceModel("dicom.edit.applicationEntity.associationAcceptor.label"))) .add(new CheckBox("associationAcceptor", associationAcceptorModel)); form.add(new Label("associationInitiator.label", new ResourceModel("dicom.edit.applicationEntity.associationInitiator.label"))) .add(new CheckBox("associationInitiator", associationInitiatorModel)); form.add(new CheckBoxMultipleChoice<ConnectionModel>("connections", connectionReferencesModel, new Model<ArrayList<ConnectionModel>>(connectionReferences), new IChoiceRenderer<ConnectionModel>() { private static final long serialVersionUID = 1L; public Object getDisplayValue(ConnectionModel connectionReference) { Connection connection = null; try { connection = connectionReference.getConnection(); } catch (Exception e) { log.error(this.getClass().toString() + ": " + "Error obtaining connection: " + e.getMessage()); log.debug("Exception", e); throw new ModalWindowRuntimeException(e.getLocalizedMessage()); } String location = connection.getHostname() + (connection.getPort() == -1 ? "" : ":" + connection.getPort()); return connection.getCommonName() != null ? connection.getCommonName() + " (" + location + ")" : location; } public String getIdValue(ConnectionModel model, int index) { return String.valueOf(index); } }).add(new ConnectionReferenceValidator()) .add(new ConnectionProtocolValidator(Connection.Protocol.DICOM))); WebMarkupContainer proxyContainer = new WebMarkupContainer("proxy") { private static final long serialVersionUID = 1L; @Override public boolean isVisible() { return isProxy; } }; form.add(proxyContainer); proxyContainer .add(new Label("acceptDataOnFailedNegotiation.label", new ResourceModel("dicom.edit.applicationEntity.proxy.acceptDataOnFailedNegotiation.label")) .setVisible(isProxy)) .add(new CheckBox("acceptDataOnFailedNegotiation", acceptDataOnFailedNegotiationModel) .setVisible(isProxy)); proxyContainer .add(new Label("enableAuditLog.label", new ResourceModel("dicom.edit.applicationEntity.proxy.enableAuditLog.label")) .setVisible(isProxy)) .add(new CheckBox("enableAuditLog", enableAuditLogModel).setVisible(isProxy)); proxyContainer .add(new Label("spoolDirectory.label", new ResourceModel("dicom.edit.applicationEntity.proxy.spoolDirectory.label")) .setVisible(isProxy)) .add(new TextField<String>("spoolDirectory", spoolDirectoryModel).setRequired(true) .setVisible(isProxy)); proxyContainer .add(new Label("deleteFailedDataWithoutRetryConfiguration.label", new ResourceModel( "dicom.edit.applicationEntity.proxy.deleteFailedDataWithoutRetryConfiguration.label"))) .add(new CheckBox("deleteFailedDataWithoutRetryConfiguration", deleteFailedDataWithoutRetryConfigurationModel)); proxyContainer .add(new Label("mergeStgCmtMessagesUsingANDLogic.label", new ResourceModel( "dicom.edit.applicationEntity.proxy.mergeStgCmtMessagesUsingANDLogic.label"))) .add(new CheckBox("mergeStgCmtMessagesUsingANDLogic", mergeStgCmtMessagesUsingANDLogicModel)); final WebMarkupContainer optionalContainer = new WebMarkupContainer("optional"); form.add(optionalContainer.setOutputMarkupId(true).setOutputMarkupPlaceholderTag(true).setVisible(false)); optionalContainer .add(new Label("applicationClusters.label", new ResourceModel("dicom.edit.applicationEntity.optional.applicationClusters.label"))) .add(new TextArea<String>("applicationClusters", applicationClustersModel)); optionalContainer .add(new Label("description.label", new ResourceModel("dicom.edit.applicationEntity.optional.description.label"))) .add(new TextField<String>("description", descriptionModel)); optionalContainer .add(new Label("installed.label", new ResourceModel("dicom.edit.applicationEntity.optional.installed.label"))) .add(new DropDownChoice<Boolean>("installed", installedModel, Arrays.asList(new Boolean[] { new Boolean(true), new Boolean(false) }), new IChoiceRenderer<Boolean>() { private static final long serialVersionUID = 1L; public String getDisplayValue(Boolean object) { return object.booleanValue() ? installedRendererChoices.get(0) : installedRendererChoices.get(1); } public String getIdValue(Boolean object, int index) { return String.valueOf(index); } }).setNullValid(true)); optionalContainer .add(new Label("calledAETitles.label", new ResourceModel("dicom.edit.applicationEntity.optional.calledAETitles.label"))) .add(new TextArea<String>("calledAETitles", calledAETitlesModel)); optionalContainer .add(new Label("callingAETitles.label", new ResourceModel("dicom.edit.applicationEntity.optional.callingAETitles.label"))) .add(new TextArea<String>("callingAETitles", callingAETitlesModel)); optionalContainer .add(new Label("supportedCharacterSets.label", new ResourceModel("dicom.edit.applicationEntity.optional.supportedCharacterSets.label"))) .add(new TextArea<String>("supportedCharacterSets", supportedCharacterSetsModel)); optionalContainer .add(new Label("vendorData.label", new ResourceModel("dicom.edit.applicationEntity.optional.vendorData.label"))) .add(new Label("vendorData", vendorDataModel)); WebMarkupContainer optionalProxyContainer = new WebMarkupContainer("proxy"); optionalContainer.add(optionalProxyContainer.setVisible(isProxy)); final DropDownChoice<String> proxyPIXConsumerApplicationDropDownChoice = new DropDownChoice<String>( "proxyPIXConsumerApplication", proxyPIXConsumerApplicationModel, hl7Applications); optionalProxyContainer .add(new Label("proxyPIXConsumerApplication.label", new ResourceModel( "dicom.edit.applicationEntity.optional.proxy.proxyPIXConsumerApplication.label"))) .add(proxyPIXConsumerApplicationDropDownChoice.setNullValid(true).setOutputMarkupId(true) .setOutputMarkupPlaceholderTag(true)); final TextField<String> proxyPIXConsumerApplicationTextField = new TextField<String>( "proxyPIXConsumerApplication.freetext", proxyPIXConsumerApplicationModel); optionalProxyContainer.add(proxyPIXConsumerApplicationTextField.setVisible(false).setOutputMarkupId(true) .setOutputMarkupPlaceholderTag(true)); final Model<Boolean> toggleProxyPIXConsumerApplicationModel = Model.of(false); if (aeModel != null && proxyPIXConsumerApplicationModel.getObject() != null && !hl7Applications.contains(proxyPIXConsumerApplicationModel.getObject())) { toggleProxyPIXConsumerApplicationModel.setObject(true); proxyPIXConsumerApplicationTextField.setVisible(true); proxyPIXConsumerApplicationDropDownChoice.setVisible(false); } optionalProxyContainer .add(new AjaxCheckBox("toggleProxyPIXConsumerApplication", toggleProxyPIXConsumerApplicationModel) { private static final long serialVersionUID = 1L; @Override protected void onUpdate(AjaxRequestTarget target) { proxyPIXConsumerApplicationDropDownChoice .setVisible(!toggleProxyPIXConsumerApplicationModel.getObject()); proxyPIXConsumerApplicationTextField .setVisible(toggleProxyPIXConsumerApplicationModel.getObject()); target.add(proxyPIXConsumerApplicationDropDownChoice); target.add(proxyPIXConsumerApplicationTextField); } }); final DropDownChoice<String> remotePIXManagerApplicationDropDownChoice = new DropDownChoice<String>( "remotePIXManagerApplication", remotePIXManagerApplicationModel, hl7Applications); optionalProxyContainer .add(new Label("remotePIXManagerApplication.label", new ResourceModel( "dicom.edit.applicationEntity.optional.proxy.remotePIXManagerApplication.label"))) .add(remotePIXManagerApplicationDropDownChoice.setNullValid(true).setOutputMarkupId(true) .setOutputMarkupPlaceholderTag(true)); final TextField<String> remotePIXManagerApplicationTextField = new TextField<String>( "remotePIXManagerApplication.freetext", remotePIXManagerApplicationModel); optionalProxyContainer.add(remotePIXManagerApplicationTextField.setVisible(false).setOutputMarkupId(true) .setOutputMarkupPlaceholderTag(true)); final Model<Boolean> toggleRemotePIXManagerApplicationModel = Model.of(false); if (aeModel != null && remotePIXManagerApplicationModel.getObject() != null && !hl7Applications.contains(remotePIXManagerApplicationModel.getObject())) { toggleRemotePIXManagerApplicationModel.setObject(true); remotePIXManagerApplicationTextField.setVisible(true); remotePIXManagerApplicationDropDownChoice.setVisible(false); } optionalProxyContainer .add(new AjaxCheckBox("toggleRemotePIXManagerApplication", toggleRemotePIXManagerApplicationModel) { private static final long serialVersionUID = 1L; @Override protected void onUpdate(AjaxRequestTarget target) { remotePIXManagerApplicationDropDownChoice .setVisible(!toggleRemotePIXManagerApplicationModel.getObject()); remotePIXManagerApplicationTextField .setVisible(toggleRemotePIXManagerApplicationModel.getObject()); target.add(remotePIXManagerApplicationDropDownChoice); target.add(remotePIXManagerApplicationTextField); } }); List<String> uniqueAETitles = null; if (isProxy) try { uniqueAETitles = Arrays.asList(ConfigTreeProvider.get().getUniqueAETitles()); Collections.sort(uniqueAETitles); } catch (ConfigurationException ce) { log.error(this.getClass().toString() + ": " + "Error retrieving unique ae titles: " + ce.getMessage()); log.debug("Exception", ce); throw new ModalWindowRuntimeException(ce.getLocalizedMessage()); } final DropDownChoice<String> fallbackDestinationAETDropDownChoice = new DropDownChoice<String>( "fallbackDestinationAET", fallbackDestinationAETModel, uniqueAETitles); optionalProxyContainer .add(new Label("fallbackDestinationAET.label", new ResourceModel( "dicom.edit.applicationEntity.optional.proxy.fallbackDestinationAET.label"))) .add(fallbackDestinationAETDropDownChoice.setNullValid(true).setOutputMarkupId(true) .setOutputMarkupPlaceholderTag(true)); final TextField<String> fallbackDestinationAETTextField = new TextField<String>( "fallbackDestinationAET.freetext", fallbackDestinationAETModel); optionalProxyContainer.add(fallbackDestinationAETTextField.setVisible(false).setOutputMarkupId(true) .setOutputMarkupPlaceholderTag(true)); final Model<Boolean> toggleFallbackDestinationAETModel = Model.of(false); if (aeModel != null && fallbackDestinationAETModel.getObject() != null && !uniqueAETitles.contains(fallbackDestinationAETModel.getObject())) { toggleFallbackDestinationAETModel.setObject(true); fallbackDestinationAETTextField.setVisible(true); fallbackDestinationAETDropDownChoice.setVisible(false); } optionalProxyContainer .add(new AjaxCheckBox("toggleFallbackDestinationAET", toggleFallbackDestinationAETModel) { private static final long serialVersionUID = 1L; @Override protected void onUpdate(AjaxRequestTarget target) { fallbackDestinationAETDropDownChoice .setVisible(!toggleFallbackDestinationAETModel.getObject()); fallbackDestinationAETTextField.setVisible(toggleFallbackDestinationAETModel.getObject()); target.add(fallbackDestinationAETDropDownChoice); target.add(fallbackDestinationAETTextField); } }); form.add(new Label("toggleOptional.label", new ResourceModel("dicom.edit.toggleOptional.label"))) .add(new AjaxCheckBox("toggleOptional", new Model<Boolean>()) { private static final long serialVersionUID = 1L; @Override protected void onUpdate(AjaxRequestTarget target) { target.add(optionalContainer.setVisible(this.getModelObject())); } }); form.add(new IndicatingAjaxButton("submit", new ResourceModel("saveBtn"), form) { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { try { ApplicationEntity applicationEntity = aeModel == null ? new ApplicationEntity(aeTitleModel.getObject()) : aeModel.getApplicationEntity(); applicationEntity.setAETitle(aeTitleModel.getObject()); applicationEntity.setAssociationAcceptor(associationAcceptorModel.getObject()); applicationEntity.setAssociationInitiator(associationInitiatorModel.getObject()); applicationEntity.getConnections().clear(); for (ConnectionModel connectionReference : connectionReferencesModel.getObject()) for (Connection connection : ((DeviceModel) deviceNode.getModel()).getDevice() .listConnections()) if (connectionReference.getConnection().getHostname().equals(connection.getHostname()) && connectionReference.getConnection().getPort() == connection.getPort()) applicationEntity.addConnection(connection); applicationEntity.setApplicationClusters(applicationClustersModel.getArray()); applicationEntity.setDescription(descriptionModel.getObject()); applicationEntity.setInstalled(installedModel.getObject()); applicationEntity.setPreferredCalledAETitles(calledAETitlesModel.getArray()); applicationEntity.setPreferredCallingAETitles(callingAETitlesModel.getArray()); applicationEntity.setSupportedCharacterSets(supportedCharacterSetsModel.getArray()); if (isProxy) { ProxyAEExtension proxyAEExtension = applicationEntity .getAEExtension(ProxyAEExtension.class); if (proxyAEExtension == null) { proxyAEExtension = new ProxyAEExtension(); applicationEntity.addAEExtension(proxyAEExtension); } proxyAEExtension .setAcceptDataOnFailedAssociation(acceptDataOnFailedNegotiationModel.getObject()); proxyAEExtension.setEnableAuditLog(enableAuditLogModel.getObject()); proxyAEExtension.setSpoolDirectory(spoolDirectoryModel.getObject()); proxyAEExtension.setDeleteFailedDataWithoutRetryConfiguration( deleteFailedDataWithoutRetryConfigurationModel.getObject()); proxyAEExtension .setProxyPIXConsumerApplication(proxyPIXConsumerApplicationModel.getObject()); proxyAEExtension .setRemotePIXManagerApplication(remotePIXManagerApplicationModel.getObject()); proxyAEExtension.setFallbackDestinationAET(fallbackDestinationAETModel.getObject()); proxyAEExtension.setMergeStgCmtMessagesUsingANDLogic( mergeStgCmtMessagesUsingANDLogicModel.getObject()); TransferCapabilitiesUtils.addTCsToAE(applicationEntity); } if (aeModel != null) { if (!"*".equals(oldAETitle)) ConfigTreeProvider.get().unregisterAETitle(oldAETitle); } else ((DeviceModel) deviceNode.getModel()).getDevice().addApplicationEntity(applicationEntity); ConfigTreeProvider.get().mergeDevice(applicationEntity.getDevice()); if (!"*".equals(applicationEntity.getAETitle())) ConfigTreeProvider.get().registerAETitle(applicationEntity.getAETitle()); window.close(target); } catch (Exception e) { log.error(this.getClass().toString() + ": " + "Error modifying application entity: " + e.getMessage()); log.debug("Exception", e); throw new ModalWindowRuntimeException(e.getLocalizedMessage()); } } @Override protected void onError(AjaxRequestTarget target, Form<?> form) { if (target != null) target.add(form); } }); form.add(new AjaxFallbackButton("cancel", new ResourceModel("cancelBtn"), form) { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { window.close(target); } @Override protected void onError(AjaxRequestTarget arg0, Form<?> arg1) { } }.setDefaultFormProcessing(false)); }
From source file:org.dcm4chee.wizard.edit.CreateOrEditAuditLoggerPage.java
License:LGPL
public CreateOrEditAuditLoggerPage(final ModalWindow window, final AuditLoggerModel auditLoggerModel, final ConfigTreeNode deviceNode) { super();/*w w w. jav a 2 s.c om*/ add(new WebMarkupContainer("create-audit-logger-title").setVisible(auditLoggerModel == null)); add(new WebMarkupContainer("edit-audit-logger-title").setVisible(auditLoggerModel != null)); setOutputMarkupId(true); final ExtendedForm form = new ExtendedForm("form"); form.setResourceIdPrefix("dicom.edit.audit-logger."); add(form); installedRendererChoices = new ArrayList<String>(); installedRendererChoices .add(new ResourceModel("dicom.installed.true.text").wrapOnAssignment(this).getObject()); installedRendererChoices .add(new ResourceModel("dicom.installed.false.text").wrapOnAssignment(this).getObject()); ArrayList<ConnectionModel> connectionReferences = new ArrayList<ConnectionModel>(); List<String> deviceList = null; try { connectionReferencesModel = new Model<ArrayList<ConnectionModel>>(); connectionReferencesModel.setObject(new ArrayList<ConnectionModel>()); for (Connection connection : ((DeviceModel) deviceNode.getModel()).getDevice().listConnections()) { ConnectionModel connectionReference = new ConnectionModel(connection, 0); connectionReferences.add(connectionReference); if (auditLoggerModel != null && auditLoggerModel.getAuditLogger().getConnections().contains(connection)) connectionReferencesModel.getObject().add(connectionReference); } deviceList = ((WizardApplication) getApplication()).getDicomConfigurationManager().listDevices(); Collections.sort(deviceList); arrDeviceNameModel = Model.of(); if (auditLoggerModel == null) { applicationNameModel = Model.of(); auditEnterpriseSiteIDModel = Model.of(); auditSourceIDModel = Model.of(); auditSourceTypeCodesModel = new StringArrayModel(null); encodingModel = Model.of("UTF-8"); facilityModel = Model.of(AuditLogger.Facility.authpriv); formatXMLModel = Model.of(); includeBOMModel = Model.of(); installedModel = Model.of(); majorFailureSeverityModel = Model.of(AuditLogger.Severity.crit); messageIDModel = Model.of(AuditLogger.MESSAGE_ID); minorFailureSeverityModel = Model.of(AuditLogger.Severity.warning); schemaURIModel = Model.of(); seriousFailureSeverityModel = Model.of(AuditLogger.Severity.err); successSeverityModel = Model.of(AuditLogger.Severity.notice); timestampInUTCModel = Model.of(); } else { AuditLogger auditLogger = auditLoggerModel.getAuditLogger(); applicationNameModel = Model.of(auditLogger.getApplicationName()); auditEnterpriseSiteIDModel = Model.of(auditLogger.getAuditEnterpriseSiteID()); if (auditLogger.getAuditRecordRepositoryDevice() != null) arrDeviceNameModel = Model.of(auditLogger.getAuditRecordRepositoryDevice().getDeviceName()); Collections.sort(deviceList); auditSourceIDModel = Model.of(auditLogger.getAuditSourceID()); auditSourceTypeCodesModel = new StringArrayModel(auditLogger.getAuditSourceTypeCodes()); encodingModel = Model.of(auditLogger.getEncoding()); facilityModel = Model.of(auditLogger.getFacility()); formatXMLModel = Model.of(auditLogger.isFormatXML()); includeBOMModel = Model.of(auditLogger.isIncludeBOM()); installedModel = Model.of(auditLogger.getInstalled()); majorFailureSeverityModel = Model.of(auditLogger.getMajorFailureSeverity()); messageIDModel = Model.of(auditLogger.getMessageID()); minorFailureSeverityModel = Model.of(auditLogger.getMinorFailureSeverity()); schemaURIModel = Model.of(auditLogger.getSchemaURI()); seriousFailureSeverityModel = Model.of(auditLogger.getSeriousFailureSeverity()); successSeverityModel = Model.of(auditLogger.getSuccessSeverity()); timestampInUTCModel = Model.of(auditLogger.isTimestampInUTC()); } } catch (ConfigurationException ce) { log.error(this.getClass().toString() + ": " + "Error retrieving audit logger data: " + ce.getMessage()); log.debug("Exception", ce); throw new ModalWindowRuntimeException(ce.getLocalizedMessage()); } form.add(new Label("applicationName.label", new ResourceModel("dicom.edit.audit-logger.applicationName.label"))) .add(new TextField<String>("applicationName", applicationNameModel).setRequired(true) .add(FocusOnLoadBehavior.newFocusAndSelectBehaviour())); form.add(new CheckBoxMultipleChoice<ConnectionModel>("connections", connectionReferencesModel, new Model<ArrayList<ConnectionModel>>(connectionReferences), new IChoiceRenderer<ConnectionModel>() { private static final long serialVersionUID = 1L; public Object getDisplayValue(ConnectionModel connectionReference) { Connection connection = null; try { connection = connectionReference.getConnection(); } catch (Exception e) { log.error(this.getClass().toString() + ": " + "Error obtaining connection: " + e.getMessage()); log.debug("Exception", e); throw new ModalWindowRuntimeException(e.getLocalizedMessage()); } String location = connection.getHostname() + (connection.getPort() == -1 ? "" : ":" + connection.getPort()); return connection.getCommonName() != null ? connection.getCommonName() + " (" + location + ")" : location; } public String getIdValue(ConnectionModel model, int index) { return String.valueOf(index); } }).add(new ConnectionReferenceValidator()).add(new ConnectionProtocolValidator( Connection.Protocol.SYSLOG_TLS, Connection.Protocol.SYSLOG_UDP))); DeviceListValidator deviceListValidator = null; if (arrDeviceNameModel.getObject() != null && !deviceList.contains(arrDeviceNameModel.getObject())) { deviceList.add(0, arrDeviceNameModel.getObject()); deviceListValidator = new DeviceListValidator(); } DropDownChoice<String> arrDeviceNameDropDownChoice; form.add(new Label("arrDeviceName.label", new ResourceModel("dicom.edit.audit-logger.arrDeviceName.label"))) .add((arrDeviceNameDropDownChoice = new DropDownChoice<String>("arrDeviceName", arrDeviceNameModel, deviceList)).setNullValid(false).setRequired(true)); if (arrDeviceNameModel.getObject() == null) arrDeviceNameModel.setObject(deviceList.get(0)); if (deviceListValidator != null) arrDeviceNameDropDownChoice.add(deviceListValidator); final WebMarkupContainer optionalContainer = new WebMarkupContainer("optional"); form.add(optionalContainer.setOutputMarkupId(true).setOutputMarkupPlaceholderTag(true).setVisible(false)); form.add(new Label("toggleOptional.label", new ResourceModel("dicom.edit.toggleOptional.label"))) .add(new AjaxCheckBox("toggleOptional", new Model<Boolean>()) { private static final long serialVersionUID = 1L; @Override protected void onUpdate(AjaxRequestTarget target) { target.add(optionalContainer.setVisible(this.getModelObject())); } }); optionalContainer .add(new Label("auditEnterpriseSiteID.label", new ResourceModel("dicom.edit.audit-logger.optional.auditEnterpriseSiteID.label"))) .add(new TextField<String>("auditEnterpriseSiteID", auditEnterpriseSiteIDModel)); optionalContainer .add(new Label("auditSourceID.label", new ResourceModel("dicom.edit.audit-logger.optional.auditSourceID.label"))) .add(new TextField<String>("auditSourceID", auditSourceIDModel)); optionalContainer .add(new Label("auditSourceTypeCodes.label", new ResourceModel("dicom.edit.audit-logger.optional.auditSourceTypeCodes.label"))) .add(new TextArea<String>("auditSourceTypeCodes", auditSourceTypeCodesModel)); optionalContainer .add(new Label("encoding.label", new ResourceModel("dicom.edit.audit-logger.optional.encoding.label"))) .add(new TextField<String>("encoding", encodingModel).setRequired(true)); optionalContainer .add(new Label("facility.label", new ResourceModel("dicom.edit.audit-logger.optional.facility.label"))) .add(new DropDownChoice<Facility>("facility", facilityModel, Arrays.asList(AuditLogger.Facility.values()))); optionalContainer .add(new Label("formatXML.label", new ResourceModel("dicom.edit.audit-logger.optional.formatXML.label"))) .add(new CheckBox("formatXML", formatXMLModel)); optionalContainer .add(new Label("includeBOM.label", new ResourceModel("dicom.edit.audit-logger.optional.includeBOM.label"))) .add(new CheckBox("includeBOM", includeBOMModel)); optionalContainer .add(new Label("installed.label", new ResourceModel("dicom.edit.audit-logger.optional.installed.label"))) .add(new DropDownChoice<Boolean>("installed", installedModel, Arrays.asList(new Boolean[] { new Boolean(true), new Boolean(false) }), new IChoiceRenderer<Boolean>() { private static final long serialVersionUID = 1L; public String getDisplayValue(Boolean object) { return object.booleanValue() ? installedRendererChoices.get(0) : installedRendererChoices.get(1); } public String getIdValue(Boolean object, int index) { return String.valueOf(index); } }).setNullValid(true)); optionalContainer .add(new Label("messageID.label", new ResourceModel("dicom.edit.audit-logger.optional.messageID.label"))) .add(new TextField<String>("messageID", messageIDModel).setRequired(true)); optionalContainer .add(new Label("schemaURI.label", new ResourceModel("dicom.edit.audit-logger.optional.schemaURI.label"))) .add(new TextField<String>("schemaURI", schemaURIModel)); optionalContainer .add(new Label("timestampInUTC.label", new ResourceModel("dicom.edit.audit-logger.optional.timestampInUTC.label"))) .add(new CheckBox("timestampInUTC", timestampInUTCModel)); List<Severity> severities = Arrays.asList(AuditLogger.Severity.values()); optionalContainer .add(new Label("majorFailureSeverity.label", new ResourceModel("dicom.edit.audit-logger.optional.majorFailureSeverity.label"))) .add(new DropDownChoice<Severity>("majorFailureSeverity", majorFailureSeverityModel, severities)); optionalContainer .add(new Label("minorFailureSeverity.label", new ResourceModel("dicom.edit.audit-logger.optional.minorFailureSeverity.label"))) .add(new DropDownChoice<Severity>("minorFailureSeverity", minorFailureSeverityModel, severities)); optionalContainer .add(new Label("seriousFailureSeverity.label", new ResourceModel("dicom.edit.audit-logger.optional.seriousFailureSeverity.label"))) .add(new DropDownChoice<Severity>("seriousFailureSeverity", seriousFailureSeverityModel, severities)); optionalContainer .add(new Label("successSeverity.label", new ResourceModel("dicom.edit.audit-logger.optional.successSeverity.label"))) .add(new DropDownChoice<Severity>("successSeverity", successSeverityModel, severities)); form.add(new AjaxFallbackButton("submit", new ResourceModel("saveBtn"), form) { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { try { AuditLogger auditLogger = auditLoggerModel == null ? new AuditLogger() : auditLoggerModel.getAuditLogger(); auditLogger.setApplicationName(applicationNameModel.getObject()); auditLogger.getConnections().clear(); for (ConnectionModel connectionReference : connectionReferencesModel.getObject()) for (Connection connection : ((DeviceModel) deviceNode.getModel()).getDevice() .listConnections()) if (connectionReference.getConnection().getHostname().equals(connection.getHostname()) && connectionReference.getConnection().getPort() == connection.getPort()) auditLogger.addConnection(connection); auditLogger.setAuditRecordRepositoryDevice( ((WizardApplication) getApplication()).getDicomConfigurationManager() .getDicomConfiguration().findDevice(arrDeviceNameModel.getObject())); if (optionalContainer.isVisible()) { auditLogger.setAuditEnterpriseSiteID(auditEnterpriseSiteIDModel.getObject()); auditLogger.setAuditSourceID(auditSourceIDModel.getObject()); auditLogger.setAuditSourceTypeCodes(auditSourceTypeCodesModel.getArray()); if (encodingModel.getObject() != null) auditLogger.setEncoding(encodingModel.getObject()); auditLogger.setFacility(facilityModel.getObject()); auditLogger.setFormatXML(formatXMLModel.getObject()); auditLogger.setIncludeBOM(includeBOMModel.getObject()); auditLogger.setInstalled(installedModel.getObject()); auditLogger.setMessageID(messageIDModel.getObject()); auditLogger.setSchemaURI(schemaURIModel.getObject()); auditLogger.setTimestampInUTC(timestampInUTCModel.getObject()); auditLogger.setSeriousFailureSeverity(seriousFailureSeverityModel.getObject()); auditLogger.setMajorFailureSeverity(majorFailureSeverityModel.getObject()); auditLogger.setMinorFailureSeverity(minorFailureSeverityModel.getObject()); auditLogger.setSuccessSeverity(successSeverityModel.getObject()); } Device device = ((DeviceModel) deviceNode.getModel()).getDevice(); if (auditLoggerModel == null) device.addDeviceExtension(auditLogger); ConfigTreeProvider.get().mergeDevice(device); window.close(target); } catch (Exception e) { log.error(this.getClass().toString() + ": " + "Error modifying HL7 application: " + e.getMessage()); if (log.isDebugEnabled()) e.printStackTrace(); throw new ModalWindowRuntimeException(e.getLocalizedMessage()); } } @Override protected void onError(AjaxRequestTarget target, Form<?> form) { if (target != null) target.add(form); } }); form.add(new AjaxFallbackButton("cancel", new ResourceModel("cancelBtn"), form) { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { window.close(target); } @Override protected void onError(AjaxRequestTarget arg0, Form<?> arg1) { } }.setDefaultFormProcessing(false)); }
From source file:org.dcm4chee.wizard.edit.CreateOrEditCoercionPage.java
License:LGPL
public CreateOrEditCoercionPage(final ModalWindow window, final CoercionModel coercionModel, final ConfigTreeNode aeNode) { super();//from w ww . ja v a2 s.c o m ApplicationEntity applicationEntity = null; try { applicationEntity = ((ApplicationEntityModel) aeNode.getModel()).getApplicationEntity(); } catch (ConfigurationException ce) { log.error(this.getClass().toString() + ": " + "Error modifying retry: " + ce.getMessage()); log.debug("Exception", ce); throw new ModalWindowRuntimeException(ce.getLocalizedMessage()); } add(new WebMarkupContainer("create-coercion-title").setVisible(coercionModel == null)); add(new WebMarkupContainer("edit-coercion-title").setVisible(coercionModel != null)); setOutputMarkupId(true); final ExtendedForm form = new ExtendedForm("form"); form.setResourceIdPrefix("dicom.edit.coercion."); add(form); aeTitleModel = Model.of(); if (coercionModel == null) { commonNameModel = Model.of(); dimseModel = Model.of(org.dcm4che3.net.Dimse.C_STORE_RQ); transferRoleModel = Model.of(org.dcm4che3.net.TransferCapability.Role.SCP); labeledURIModel = Model.of(); sopClassesModel = new StringArrayModel(null); } else { AttributeCoercion coercion = coercionModel.getCoercion(); commonNameModel = Model.of(coercion.getCommonName()); dimseModel = Model.of(coercion.getDIMSE()); transferRoleModel = Model.of(coercion.getRole()); labeledURIModel = Model.of(coercion.getURI()); if (coercion.getAETitles() != null && coercion.getAETitles().length > 0) aeTitleModel = Model.of(coercion.getAETitles()[0]); sopClassesModel = new StringArrayModel(coercion.getSOPClasses()); } form.add(new Label("commonName.label", new ResourceModel("dicom.edit.coercion.commonName.label"))) .add(new TextField<String>("commonName", commonNameModel).setRequired(true) .add(new CoercionValidator(commonNameModel.getObject(), applicationEntity))); form.add(new Label("dimse.label", new ResourceModel("dicom.edit.coercion.dimse.label"))); ArrayList<Dimse> dimseList = new ArrayList<Dimse>(); dimseList.add(Dimse.C_STORE_RQ); dimseList.add(Dimse.C_GET_RQ); dimseList.add(Dimse.C_MOVE_RQ); dimseList.add(Dimse.C_FIND_RQ); dimseList.add(Dimse.C_FIND_RSP); dimseList.add(Dimse.C_MOVE_RSP); dimseList.add(Dimse.C_GET_RSP); DropDownChoice<Dimse> dimseDropDown = new DropDownChoice<Dimse>("dimse", dimseModel, dimseList); form.add(dimseDropDown.setNullValid(false)); form.add(new Label("transferRole.label", new ResourceModel("dicom.edit.coercion.transferRole.label"))); ArrayList<org.dcm4che3.net.TransferCapability.Role> transferSyntaxList = new ArrayList<org.dcm4che3.net.TransferCapability.Role>(); transferSyntaxList.add(org.dcm4che3.net.TransferCapability.Role.SCP); transferSyntaxList.add(org.dcm4che3.net.TransferCapability.Role.SCU); DropDownChoice<org.dcm4che3.net.TransferCapability.Role> roleDropDown = new DropDownChoice<org.dcm4che3.net.TransferCapability.Role>( "transferRole", transferRoleModel, transferSyntaxList); form.add(roleDropDown.setNullValid(false)); form.add(new Label("labeledURI.label", new ResourceModel("dicom.edit.coercion.labeledURI.label"))) .add(new TextField<String>("labeledURI", labeledURIModel).setRequired(true)); final WebMarkupContainer optionalContainer = new WebMarkupContainer("optional"); form.add(optionalContainer.setOutputMarkupId(true).setOutputMarkupPlaceholderTag(true).setVisible(false)); List<String> uniqueAETitles = null; try { uniqueAETitles = Arrays.asList(ConfigTreeProvider.get().getUniqueAETitles()); } catch (ConfigurationException ce) { log.error(this.getClass().toString() + ": " + "Error retrieving unique ae titles: " + ce.getMessage()); log.debug("Exception", ce); throw new ModalWindowRuntimeException(ce.getLocalizedMessage()); } Collections.sort(uniqueAETitles); final DropDownChoice<String> aeTitleDropDownChoice = new DropDownChoice<String>("aeTitle", aeTitleModel, uniqueAETitles); optionalContainer .add(new Label("aeTitle.label", new ResourceModel("dicom.edit.coercion.optional.aeTitle.label"))) .add(aeTitleDropDownChoice.setNullValid(true).setOutputMarkupId(true) .setOutputMarkupPlaceholderTag(true)); final TextField<String> aeTitleTextField = new TextField<String>("aeTitle.freetext", aeTitleModel); optionalContainer.add( aeTitleTextField.setVisible(false).setOutputMarkupId(true).setOutputMarkupPlaceholderTag(true)); final Model<Boolean> toggleAETitleModel = Model.of(false); if (coercionModel != null && aeTitleModel.getObject() != null && !uniqueAETitles.contains(aeTitleModel.getObject())) { toggleAETitleModel.setObject(true); aeTitleTextField.setVisible(true); aeTitleDropDownChoice.setVisible(false); } optionalContainer.add(new AjaxCheckBox("toggleAETitle", toggleAETitleModel) { private static final long serialVersionUID = 1L; @Override protected void onUpdate(AjaxRequestTarget target) { aeTitleDropDownChoice.setVisible(!toggleAETitleModel.getObject()); aeTitleTextField.setVisible(toggleAETitleModel.getObject()); target.add(aeTitleDropDownChoice); target.add(aeTitleTextField); } }); optionalContainer .add(new Label("sopClasses.label", new ResourceModel("dicom.edit.coercion.optional.sopClasses.label"))) .add(new TextArea<String>("sopClasses", sopClassesModel).add(new SOPClassValidator())); form.add(new Label("toggleOptional.label", new ResourceModel("dicom.edit.toggleOptional.label"))) .add(new AjaxCheckBox("toggleOptional", new Model<Boolean>()) { private static final long serialVersionUID = 1L; @Override protected void onUpdate(AjaxRequestTarget target) { target.add(optionalContainer.setVisible(this.getModelObject())); } }); form.add(new IndicatingAjaxButton("submit", new ResourceModel("saveBtn"), form) { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { try { AttributeCoercion coercion = new AttributeCoercion(commonNameModel.getObject(), sopClassesModel.getArray(), dimseModel.getObject(), transferRoleModel.getObject(), aeTitleModel.getObject() == null ? new String[0] : new String[] { aeTitleModel.getObject() }, labeledURIModel.getObject()); ProxyAEExtension proxyAEExtension = ((ApplicationEntityModel) aeNode.getModel()) .getApplicationEntity().getAEExtension(ProxyAEExtension.class); if (coercionModel != null) proxyAEExtension.getAttributeCoercions().remove(coercionModel.getCoercion()); proxyAEExtension.getAttributeCoercions().add(coercion); ConfigTreeProvider.get().mergeDevice( ((ApplicationEntityModel) aeNode.getModel()).getApplicationEntity().getDevice()); window.close(target); } catch (Exception e) { log.error(this.getClass().toString() + ": " + "Error modifying coercion: " + e.getMessage()); log.debug("Exception", e); throw new ModalWindowRuntimeException(e.getLocalizedMessage()); } } @Override protected void onError(AjaxRequestTarget target, Form<?> form) { if (target != null) target.add(form); } }); form.add(new AjaxFallbackButton("cancel", new ResourceModel("cancelBtn"), form) { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { window.close(target); } @Override protected void onError(AjaxRequestTarget arg0, Form<?> arg1) { } }.setDefaultFormProcessing(false)); }
From source file:org.dcm4chee.wizard.edit.CreateOrEditConnectionPage.java
License:LGPL
public CreateOrEditConnectionPage(final ModalWindow window, final ConnectionModel connectionModel, final ConfigTreeNode deviceNode) { super();//from w w w . jav a 2s .c om add(new WebMarkupContainer("create-connection-title").setVisible(connectionModel == null)); add(new WebMarkupContainer("edit-connection-title").setVisible(connectionModel != null)); setOutputMarkupId(true); final ExtendedForm form = new ExtendedForm("form"); form.setResourceIdPrefix("dicom.edit.connection."); add(form); installedRendererChoices = new ArrayList<String>(); installedRendererChoices .add(new ResourceModel("dicom.installed.true.text").wrapOnAssignment(this).getObject()); installedRendererChoices .add(new ResourceModel("dicom.installed.false.text").wrapOnAssignment(this).getObject()); ArrayList<String> tlsProtocols = new ArrayList<>( Arrays.asList("SSLv2Hello", "SSLv3", "TLSv1", "TLSv1.1", "TLSv1.2")); ArrayList<String> tlsCipherSuites = new ArrayList<>(Arrays.asList("SSL_RSA_WITH_NULL_SHA", "TLS_RSA_WITH_AES_128_CBC_SHA", "SSL_RSA_WITH_3DES_EDE_CBC_SHA")); try { tcpBacklogModel = new DefaultableModel<Integer>(Connection.DEF_BACKLOG); tcpConnectTimeoutModel = new DefaultableModel<Integer>(Connection.NO_TIMEOUT); tcpCloseDelayModel = new DefaultableModel<Integer>(Connection.DEF_SOCKETDELAY); tcpSendBufferSizeModel = new DefaultableModel<Integer>(Connection.DEF_BUFFERSIZE); tcpReceiveBufferSizeModel = new DefaultableModel<Integer>(Connection.DEF_BUFFERSIZE); sendPDULengthModel = new DefaultableModel<Integer>(Connection.DEF_MAX_PDU_LENGTH); receivePDULengthModel = new DefaultableModel<Integer>(Connection.DEF_MAX_PDU_LENGTH); maxOpsPerformedModel = new DefaultableModel<Integer>(Connection.SYNCHRONOUS_MODE); maxOpsInvokedModel = new DefaultableModel<Integer>(Connection.SYNCHRONOUS_MODE); aarqTimeoutModel = new DefaultableModel<Integer>(Connection.NO_TIMEOUT); aaacTimeoutModel = new DefaultableModel<Integer>(Connection.NO_TIMEOUT); arrpTimeoutModel = new DefaultableModel<Integer>(Connection.NO_TIMEOUT); responseTimeoutModel = new DefaultableModel<Integer>(Connection.NO_TIMEOUT); retrieveTimeoutModel = new DefaultableModel<Integer>(Connection.NO_TIMEOUT); idleTimeoutModel = new DefaultableModel<Integer>(Connection.NO_TIMEOUT); tlsProtocolModel = new Model<ArrayList<String>>(); tlsProtocolModel.setObject(new ArrayList<String>()); if (connectionModel != null) { List<String> assignedTlsProtocols = Arrays .asList(connectionModel.getConnection().getTlsProtocols()); for (String tlsProtocol : tlsProtocols) if (assignedTlsProtocols.contains(tlsProtocol)) tlsProtocolModel.getObject().add(tlsProtocol); } tlsCipherSuitesModel = new Model<ArrayList<String>>(); tlsCipherSuitesModel.setObject(new ArrayList<String>()); if (connectionModel != null) { List<String> assignedCipherSuites = Arrays .asList(connectionModel.getConnection().getTlsCipherSuites()); for (String tlsCipherSuite : tlsCipherSuites) if (assignedCipherSuites.contains(tlsCipherSuite)) tlsCipherSuitesModel.getObject().add(tlsCipherSuite); } if (connectionModel == null) { hostnameModel = Model.of(); commonNameModel = Model.of(); installedModel = Model.of(); portModel = Model.of(); httpProxyModel = Model.of(); tlsNeedClientAuthModel = Model.of(true); protocolModel = Model.of(Connection.Protocol.DICOM); tcpNoDelayModel = Model.of(false); blacklistedHostnameModel = new StringArrayModel(null); packPDVModel = Model.of(true); } else { Connection connection = connectionModel.getConnection(); hostnameModel = Model.of(connection.getHostname()); commonNameModel = Model.of(connection.getCommonName()); installedModel = Model.of(connection.getInstalled()); portModel = Model.of(connection.getPort()); httpProxyModel = Model.of(connection.getHttpProxy()); tlsNeedClientAuthModel = Model.of(connection.isTlsNeedClientAuth()); protocolModel = Model.of(connection.getProtocol()); tcpBacklogModel.setObject(connection.getBacklog()); tcpConnectTimeoutModel.setObject(connection.getConnectTimeout()); tcpCloseDelayModel.setObject(connection.getSocketCloseDelay()); tcpSendBufferSizeModel.setObject(connection.getSendBufferSize()); tcpReceiveBufferSizeModel.setObject(connection.getReceiveBufferSize()); tcpNoDelayModel = Model.of(connection.isTcpNoDelay()); blacklistedHostnameModel = new StringArrayModel(connection.getBlacklist()); sendPDULengthModel.setObject(connection.getSendPDULength()); receivePDULengthModel.setObject(connection.getReceivePDULength()); maxOpsPerformedModel.setObject(connection.getMaxOpsPerformed()); maxOpsInvokedModel.setObject(connection.getMaxOpsInvoked()); packPDVModel = Model.of(connection.isPackPDV()); aarqTimeoutModel.setObject(connection.getRequestTimeout()); aaacTimeoutModel.setObject(connection.getAcceptTimeout()); arrpTimeoutModel.setObject(connection.getReleaseTimeout()); responseTimeoutModel.setObject(connection.getResponseTimeout()); retrieveTimeoutModel.setObject(connection.getRetrieveTimeout()); idleTimeoutModel.setObject(connection.getIdleTimeout()); } } catch (ConfigurationException ce) { log.error(this.getClass().toString() + ": " + "Error retrieving connection data: " + ce.getMessage()); log.debug("Exception", ce); throw new ModalWindowRuntimeException(ce.getLocalizedMessage()); } FormComponent<String> hostnameTextField; form.add(new Label("hostname.label", new ResourceModel("dicom.edit.connection.hostname.label"))) .add(hostnameTextField = new TextField<String>("hostname", hostnameModel) .add(new HostnameValidator()).setRequired(true)); final WebMarkupContainer optionalContainer = new WebMarkupContainer("optional"); form.add(optionalContainer.setOutputMarkupId(true).setOutputMarkupPlaceholderTag(true).setVisible(false)); TextField<String> commonNameTextField; optionalContainer .add(new Label("commonName.label", new ResourceModel("dicom.edit.connection.optional.commonName.label"))) .add(commonNameTextField = new TextField<String>("commonName", commonNameModel)); WebMarkupContainer portWMC = new WebMarkupContainer("port") { private static final long serialVersionUID = 1L; @Override public boolean isVisible() { return !((protocolModel.getObject().equals(Connection.Protocol.SYSLOG_TLS) || protocolModel.getObject().equals(Connection.Protocol.SYSLOG_UDP)) && (deviceNode.getConfigurationType().equals(ConfigurationType.Proxy) || deviceNode.getConfigurationType().equals(ConfigurationType.XDS))); } }; portWMC.setOutputMarkupId(true); portWMC.setOutputMarkupPlaceholderTag(true); FormComponent<Integer> portTextField; portWMC.add(new Label("port.label", new ResourceModel("dicom.edit.connection.optional.port.label"))) .add(portTextField = new TextField<Integer>("port", portModel).setType(Integer.class) .add(new RangeValidator<Integer>(1, 65535))); optionalContainer.add(portWMC); // if (portModel.getObject().equals(-1)) // portTextField.setModelObject(null); optionalContainer .add(new Label("installed.label", new ResourceModel("dicom.edit.connection.optional.installed.label"))) .add(new DropDownChoice<Boolean>("installed", installedModel, Arrays.asList(new Boolean[] { new Boolean(true), new Boolean(false) }), new IChoiceRenderer<Boolean>() { private static final long serialVersionUID = 1L; public String getDisplayValue(Boolean object) { return object.booleanValue() ? installedRendererChoices.get(0) : installedRendererChoices.get(1); } public String getIdValue(Boolean object, int index) { return String.valueOf(index); } }).setNullValid(true)); optionalContainer .add(new Label("tlsCipherSuites.label", new ResourceModel("dicom.edit.connection.optional.tlsCipherSuites.label"))) .add(new CheckBoxMultipleChoice<String>("tlsCipherSuites", tlsCipherSuitesModel, new Model<ArrayList<String>>(tlsCipherSuites))); optionalContainer .add(new Label("httpProxy.label", new ResourceModel("dicom.edit.connection.optional.httpProxy.label"))) .add(new TextField<String>("httpProxy", httpProxyModel).add(new HostnameValidator())); optionalContainer .add(new Label("tlsNeedClientAuth.label", new ResourceModel("dicom.edit.connection.optional.tlsNeedClientAuth.label"))) .add(new CheckBox("tlsNeedClientAuth", tlsNeedClientAuthModel)); DropDownChoice<Connection.Protocol> protocolDropDown; optionalContainer.add(new Label("protocol.label", new ResourceModel("dicom.edit.connection.optional.protocol.label"))).add( (protocolDropDown = new DropDownChoice<Connection.Protocol>("protocol", protocolModel, Arrays.asList(new Connection.Protocol[] { Connection.Protocol.DICOM, Connection.Protocol.HL7, Connection.Protocol.SYSLOG_TLS, Connection.Protocol.SYSLOG_UDP }), new IChoiceRenderer<Connection.Protocol>() { private static final long serialVersionUID = 1L; public String getDisplayValue(Connection.Protocol object) { return object.name(); } public String getIdValue(Connection.Protocol object, int index) { return String.valueOf(index); } })).setNullValid(false).add(new AjaxFormComponentUpdatingBehavior("onchange") { private static final long serialVersionUID = 1L; @Override protected void onUpdate(AjaxRequestTarget target) { target.add(optionalContainer.get("port")); } })); ; AjaxFormSubmitBehavior onProtocolChange = new AjaxFormSubmitBehavior(form, "change") { private static final long serialVersionUID = 1L; protected void onEvent(final AjaxRequestTarget target) { super.onEvent(target); } }; protocolDropDown.add(onProtocolChange); optionalContainer .add(new Label("tlsProtocol.label", new ResourceModel("dicom.edit.connection.optional.tlsProtocol.label"))) .add(new CheckBoxMultipleChoice<String>("tlsProtocol", tlsProtocolModel, new Model<ArrayList<String>>(tlsProtocols))); optionalContainer .add(new Label("tcpBacklog.label", new ResourceModel("dicom.edit.connection.optional.tcpBacklog.label"))) .add(new TextField<Integer>("tcpBacklog", tcpBacklogModel).setType(Integer.class) .add(new RangeValidator<Integer>(0, Integer.MAX_VALUE))); optionalContainer .add(new Label("tcpConnectTimeout.label", new ResourceModel("dicom.edit.connection.optional.tcpConnectTimeout.label"))) .add(new TextField<Integer>("tcpConnectTimeout", tcpConnectTimeoutModel).setType(Integer.class) .add(new RangeValidator<Integer>(0, Integer.MAX_VALUE))); optionalContainer .add(new Label("tcpCloseDelay.label", new ResourceModel("dicom.edit.connection.optional.tcpCloseDelay.label"))) .add(new TextField<Integer>("tcpCloseDelay", tcpCloseDelayModel).setType(Integer.class) .add(new RangeValidator<Integer>(0, Integer.MAX_VALUE))); optionalContainer .add(new Label("tcpSendBufferSize.label", new ResourceModel("dicom.edit.connection.optional.tcpSendBufferSize.label"))) .add(new TextField<Integer>("tcpSendBufferSize", tcpSendBufferSizeModel).setType(Integer.class) .add(new RangeValidator<Integer>(0, Integer.MAX_VALUE))); optionalContainer .add(new Label("tcpReceiveBufferSize.label", new ResourceModel("dicom.edit.connection.optional.tcpReceiveBufferSize.label"))) .add(new TextField<Integer>("tcpReceiveBufferSize", tcpReceiveBufferSizeModel) .setType(Integer.class).add(new RangeValidator<Integer>(0, Integer.MAX_VALUE))); optionalContainer .add(new Label("tcpNoDelay.label", new ResourceModel("dicom.edit.connection.optional.tcpNoDelay.label"))) .add(new CheckBox("tcpNoDelay", tcpNoDelayModel)); optionalContainer .add(new Label("blacklistedHostname.label", new ResourceModel("dicom.edit.connection.optional.blacklistedHostname.label"))) .add(new TextArea<String>("blacklistedHostname", blacklistedHostnameModel)); optionalContainer .add(new Label("sendPDULength.label", new ResourceModel("dicom.edit.connection.optional.sendPDULength.label"))) .add(new TextField<Integer>("sendPDULength", sendPDULengthModel).setType(Integer.class) .add(new RangeValidator<Integer>(0, Integer.MAX_VALUE))); optionalContainer .add(new Label("receivePDULength.label", new ResourceModel("dicom.edit.connection.optional.receivePDULength.label"))) .add(new TextField<Integer>("receivePDULength", receivePDULengthModel).setType(Integer.class) .add(new RangeValidator<Integer>(0, Integer.MAX_VALUE))); optionalContainer .add(new Label("maxOpsPerformed.label", new ResourceModel("dicom.edit.connection.optional.maxOpsPerformed.label"))) .add(new TextField<Integer>("maxOpsPerformed", maxOpsPerformedModel).setType(Integer.class) .add(new RangeValidator<Integer>(0, Integer.MAX_VALUE))); optionalContainer .add(new Label("maxOpsInvoked.label", new ResourceModel("dicom.edit.connection.optional.maxOpsInvoked.label"))) .add(new TextField<Integer>("maxOpsInvoked", maxOpsInvokedModel).setType(Integer.class) .add(new RangeValidator<Integer>(0, Integer.MAX_VALUE))); optionalContainer .add(new Label("packPDV.label", new ResourceModel("dicom.edit.connection.optional.packPDV.label"))) .add(new CheckBox("packPDV", packPDVModel)); optionalContainer .add(new Label("aarqTimeout.label", new ResourceModel("dicom.edit.connection.optional.aarqTimeout.label"))) .add(new TextField<Integer>("aarqTimeout", aarqTimeoutModel).setType(Integer.class) .add(new RangeValidator<Integer>(0, Integer.MAX_VALUE))); optionalContainer .add(new Label("aaacTimeout.label", new ResourceModel("dicom.edit.connection.optional.aaacTimeout.label"))) .add(new TextField<Integer>("aaacTimeout", aaacTimeoutModel).setType(Integer.class) .add(new RangeValidator<Integer>(0, Integer.MAX_VALUE))); optionalContainer .add(new Label("arrpTimeout.label", new ResourceModel("dicom.edit.connection.optional.arrpTimeout.label"))) .add(new TextField<Integer>("arrpTimeout", arrpTimeoutModel).setType(Integer.class) .add(new RangeValidator<Integer>(0, Integer.MAX_VALUE))); optionalContainer .add(new Label("responseTimeout.label", new ResourceModel("dicom.edit.connection.optional.responseTimeout.label"))) .add(new TextField<Integer>("responseTimeout", responseTimeoutModel).setType(Integer.class) .add(new RangeValidator<Integer>(0, Integer.MAX_VALUE))); optionalContainer .add(new Label("retrieveTimeout.label", new ResourceModel("dicom.edit.connection.optional.retrieveTimeout.label"))) .add(new TextField<Integer>("retrieveTimeout", retrieveTimeoutModel).setType(Integer.class) .add(new RangeValidator<Integer>(0, Integer.MAX_VALUE))); optionalContainer .add(new Label("idleTimeout.label", new ResourceModel("dicom.edit.connection.optional.idleTimeout.label"))) .add(new TextField<Integer>("idleTimeout", idleTimeoutModel).setType(Integer.class) .add(new RangeValidator<Integer>(0, Integer.MAX_VALUE))); form.add(new Label("toggleOptional.label", new ResourceModel("dicom.edit.toggleOptional.label"))) .add(new AjaxCheckBox("toggleOptional", new Model<Boolean>()) { private static final long serialVersionUID = 1L; @Override protected void onUpdate(AjaxRequestTarget target) { target.add(optionalContainer.setVisible(this.getModelObject())); } }); form.add(new ConnectionValidator(((DeviceModel) deviceNode.getModel()).getConnections(), commonNameTextField, hostnameTextField, portTextField, connectionModel)); if (connectionModel != null) try { Connection connection = connectionModel.getConnection(); for (ApplicationEntity ae : connection.getDevice().getApplicationEntities()) if (ae.getConnections().contains(connection)) protocolDropDown.setEnabled(false).add(new AttributeModifier("title", new ResourceModel("dicom.delete.connection.notAllowed"))); HL7DeviceExtension hl7DeviceExtension = connection.getDevice() .getDeviceExtension(HL7DeviceExtension.class); if (hl7DeviceExtension != null) { for (HL7Application hl7Application : hl7DeviceExtension.getHL7Applications()) if (hl7Application.getConnections().contains(connection)) protocolDropDown.setEnabled(false).add(new AttributeModifier("title", new ResourceModel("dicom.delete.connection.notAllowed"))); } } catch (ConfigurationException ce) { log.error(this.getClass().toString() + ": " + "Error checking connections in use: " + ce.getMessage()); log.debug("Exception", ce); throw new ModalWindowRuntimeException(ce.getLocalizedMessage()); } form.add(new IndicatingAjaxButton("submit", new ResourceModel("saveBtn"), form) { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { Connection connection = null; try { connection = (connectionModel == null) ? new Connection(commonNameModel.getObject(), hostnameModel.getObject()) : connectionModel.getConnection(); connection.setHostname(hostnameModel.getObject()); connection.setCommonName(commonNameModel.getObject()); connection.setInstalled(installedModel.getObject()); connection.setPort(portModel.getObject() == null ? -1 : portModel.getObject().intValue()); connection.setTlsCipherSuites(tlsCipherSuitesModel.getObject().toArray(new String[0])); connection.setHttpProxy(httpProxyModel.getObject()); connection.setTlsNeedClientAuth(tlsNeedClientAuthModel.getObject()); connection.setProtocol(protocolModel.getObject()); connection.setTlsProtocols(tlsProtocolModel.getObject().toArray(new String[0])); connection.setBacklog(tcpBacklogModel.getObject()); connection.setConnectTimeout(tcpConnectTimeoutModel.getObject()); connection.setSocketCloseDelay(tcpCloseDelayModel.getObject()); connection.setSendBufferSize(tcpSendBufferSizeModel.getObject()); connection.setReceiveBufferSize(tcpReceiveBufferSizeModel.getObject()); connection.setTcpNoDelay(tcpNoDelayModel.getObject()); connection.setBlacklist(blacklistedHostnameModel.getArray()); connection.setSendPDULength(sendPDULengthModel.getObject()); connection.setReceivePDULength(receivePDULengthModel.getObject()); connection.setMaxOpsPerformed(maxOpsPerformedModel.getObject()); connection.setMaxOpsInvoked(maxOpsInvokedModel.getObject()); connection.setPackPDV(packPDVModel.getObject()); connection.setRequestTimeout(aarqTimeoutModel.getObject()); connection.setAcceptTimeout(aaacTimeoutModel.getObject()); connection.setReleaseTimeout(arrpTimeoutModel.getObject()); connection.setResponseTimeout(responseTimeoutModel.getObject()); connection.setRetrieveTimeout(retrieveTimeoutModel.getObject()); connection.setIdleTimeout(idleTimeoutModel.getObject()); if (connectionModel == null) ((DeviceModel) deviceNode.getModel()).getDevice().addConnection(connection); ConfigTreeProvider.get().mergeDevice(connection.getDevice()); window.close(target); } catch (Exception e) { log.error("{}: Error saving connection: {}", this, e); if (log.isDebugEnabled()) e.printStackTrace(); throw new ModalWindowRuntimeException(e.getLocalizedMessage()); } } @Override protected void onError(AjaxRequestTarget target, Form<?> form) { if (target != null) target.add(form); } }); form.add(new AjaxFallbackButton("cancel", new ResourceModel("cancelBtn"), form) { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { window.close(target); } @Override protected void onError(AjaxRequestTarget arg0, Form<?> arg1) { } }.setDefaultFormProcessing(false)); }