List of usage examples for org.apache.wicket.extensions.ajax.markup.html IndicatingAjaxButton IndicatingAjaxButton
public IndicatingAjaxButton(final String id, final IModel<String> model, final Form<?> form)
From source file:org.apache.syncope.client.console.pages.CamelRouteModalPage.java
License:Apache License
public CamelRouteModalPage(final PageReference pageRef, final ModalWindow window, final CamelRouteTO routeTO, final boolean createFlag) { Form<CamelRouteTO> routeForm = new Form<>("routeDefForm"); final TextArea<String> routeDefArea = new TextArea<>("content", new PropertyModel<String>(routeTO, "content")); routeForm.add(routeDefArea);/*from w w w . ja va2 s.c om*/ routeForm.setModel(new CompoundPropertyModel<>(routeTO)); AjaxButton submit = new IndicatingAjaxButton(APPLY, new Model<>(getString(SUBMIT)), routeForm) { private static final long serialVersionUID = -958724007591692537L; @Override protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) { try { restClient.update(routeTO.getKey(), ((CamelRouteTO) form.getModelObject()).getContent()); info(getString(Constants.OPERATION_SUCCEEDED)); // Uncomment with something similar once SYNCOPE-156 is completed // Configuration callerPage = (Configuration) pageRef.getPage(); // callerPage.setModalResult(true); window.close(target); } catch (SyncopeClientException scee) { error(getString(Constants.ERROR) + ": " + scee.getMessage()); } target.add(feedbackPanel); } @Override protected void onError(final AjaxRequestTarget target, final Form<?> form) { target.add(feedbackPanel); } }; MetaDataRoleAuthorizationStrategy.authorize(submit, ENABLE, Entitlement.ROUTE_UPDATE); routeForm.add(submit); this.add(routeForm); }
From source file:org.dcm4chee.wizard.edit.CreateOrEditApplicationEntityPage.java
License:LGPL
public CreateOrEditApplicationEntityPage(final ModalWindow window, final ApplicationEntityModel aeModel, final ConfigTreeNode deviceNode) { super();// w w w . j av a 2s. 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.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();//www. ja v a2 s. com 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)); }
From source file:org.dcm4chee.wizard.edit.CreateOrEditDevicePage.java
License:LGPL
private void addSaveButton(final ModalWindow window, final DeviceModel deviceModel, final ExtendedForm form) { form.add(new IndicatingAjaxButton("submit", new ResourceModel("saveBtn"), form) { private static final long serialVersionUID = 1L; @Override//ww w. ja v a 2s. c o m protected void onSubmit(AjaxRequestTarget target, Form<?> form) { try { Device device = deviceModel != null ? deviceModel.getDevice() : initDeviceExtensions(); setDeviceAttributes(device); setProxyDeviceAttributes(device); setXdsDeviceAttributes(device); if (deviceModel == null) ConfigTreeProvider.get().persistDevice(device); else ConfigTreeProvider.get().mergeDevice(device); window.close(target); } catch (Exception e) { log.error(this.getClass().toString() + ": " + "Error modifying device: " + 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); } }); }
From source file:org.dcm4chee.wizard.edit.CreateOrEditHL7ApplicationPage.java
License:LGPL
public CreateOrEditHL7ApplicationPage(final ModalWindow window, final HL7ApplicationModel hl7ApplicationModel, final ConfigTreeNode deviceNode) { super();/*from w w w .ja v a 2 s . com*/ add(new WebMarkupContainer("create-hl7-application-title").setVisible(hl7ApplicationModel == null)); add(new WebMarkupContainer("edit-hl7-application-title").setVisible(hl7ApplicationModel != null)); setOutputMarkupId(true); final ExtendedForm form = new ExtendedForm("form"); form.setResourceIdPrefix("dicom.edit.hl7-application."); 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 { 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 (hl7ApplicationModel != null && hl7ApplicationModel.getHL7Application().getConnections().contains(connection)) connectionReferencesModel.getObject().add(connectionReference); } if (hl7ApplicationModel == null) { applicationNameModel = Model.of(); acceptedMessageTypesModel = new StringArrayModel(null); acceptedSendingApplicationsModel = new StringArrayModel(null); defaultCharacterSetModel = Model.of(); installedModel = Model.of(); } else { HL7Application hl7Application = hl7ApplicationModel.getHL7Application(); applicationNameModel = Model.of(hl7Application.getApplicationName()); acceptedMessageTypesModel = new StringArrayModel(hl7Application.getAcceptedMessageTypes()); acceptedSendingApplicationsModel = new StringArrayModel( hl7Application.getAcceptedSendingApplications()); defaultCharacterSetModel = Model.of(hl7Application.getHL7DefaultCharacterSet()); installedModel = Model.of(hl7Application.getInstalled()); } } catch (ConfigurationException ce) { log.error(this.getClass().toString() + ": " + "Error retrieving hl7 application data: " + ce.getMessage()); log.debug("Exception", ce); throw new ModalWindowRuntimeException(ce.getLocalizedMessage()); } form.add(new Label("applicationName.label", new ResourceModel("dicom.edit.hl7-application.applicationName.label"))) .add(new TextField<String>("applicationName", applicationNameModel) .add(new HL7NameValidator(applicationNameModel.getObject())).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.HL7))); 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("acceptedMessageTypes.label", new ResourceModel("dicom.edit.hl7-application.optional.acceptedMessageTypes.label"))) .add(new TextArea<String>("acceptedMessageTypes", acceptedMessageTypesModel)); optionalContainer .add(new Label("acceptedSendingApplications.label", new ResourceModel("dicom.edit.hl7-application.optional.acceptedSendingApplications.label"))) .add(new TextArea<String>("acceptedSendingApplications", acceptedSendingApplicationsModel)); optionalContainer .add(new Label("defaultCharacterSet.label", new ResourceModel("dicom.edit.hl7-application.optional.defaultCharacterSet.label"))) .add(new TextField<String>("defaultCharacterSet", defaultCharacterSetModel)); optionalContainer .add(new Label("installed.label", new ResourceModel("dicom.edit.hl7-application.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)); form.add(new IndicatingAjaxButton("submit", new ResourceModel("saveBtn"), form) { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { try { String oldName = hl7ApplicationModel == null ? null : hl7ApplicationModel.getHL7Application().getApplicationName(); HL7Application hl7Application = hl7ApplicationModel == null ? new HL7Application(applicationNameModel.getObject()) : (HL7Application) hl7ApplicationModel.getHL7Application(); hl7Application.setApplicationName(applicationNameModel.getObject()); hl7Application.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()) hl7Application.addConnection(connection); hl7Application.setAcceptedMessageTypes(acceptedMessageTypesModel.getArray()); hl7Application.setAcceptedSendingApplications(acceptedSendingApplicationsModel.getArray()); hl7Application.setHL7DefaultCharacterSet(defaultCharacterSetModel.getObject()); hl7Application.setInstalled(installedModel.getObject()); if (hl7ApplicationModel == null) { HL7DeviceExtension hl7DeviceExtension = ((DeviceModel) deviceNode.getModel()).getDevice() .getDeviceExtension(HL7DeviceExtension.class); if (hl7DeviceExtension == null) { hl7DeviceExtension = new HL7DeviceExtension(); ((DeviceModel) deviceNode.getModel()).getDevice() .addDeviceExtension(hl7DeviceExtension); } hl7DeviceExtension.addHL7Application(hl7Application); } else ConfigTreeProvider.get().unregisterHL7Application(oldName); ConfigTreeProvider.get().mergeDevice(hl7Application.getDevice()); ConfigTreeProvider.get().registerHL7Application(applicationNameModel.getObject()); window.close(target); } catch (Exception e) { log.error(this.getClass().toString() + ": " + "Error modifying HL7 application: " + 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.CreateOrEditTransferCapabilityPage.java
License:LGPL
public CreateOrEditTransferCapabilityPage(final ModalWindow window, final TransferCapabilityModel transferCapabilityModel, final ConfigTreeNode aeNode) { super();//from w w w .jav a2 s. c o m try { final ApplicationEntity applicationEntity = ((ApplicationEntityModel) aeNode.getModel()) .getApplicationEntity(); add(new WebMarkupContainer("create-transferCapability-title") .setVisible(transferCapabilityModel == null)); add(new WebMarkupContainer("edit-transferCapability-title") .setVisible(transferCapabilityModel != null)); setOutputMarkupId(true); final ExtendedForm form = new ExtendedForm("form"); form.setResourceIdPrefix("dicom.edit.transferCapability."); add(form); if (transferCapabilityModel == null) { sopClassModel = Model.of(); roleModel = Model.of(org.dcm4che3.net.TransferCapability.Role.SCP); transferSyntaxModel = new StringArrayModel(null); commonNameModel = Model.of(); } else { TransferCapability transferCapability = transferCapabilityModel.getTransferCapability(); sopClassModel = Model.of(transferCapability.getSopClass()); roleModel = Model.of(transferCapability.getRole()); transferSyntaxModel = new StringArrayModel(transferCapability.getTransferSyntaxes()); commonNameModel = Model.of(transferCapability.getCommonName()); } form.add( new Label("sopClass.label", new ResourceModel("dicom.edit.transferCapability.sopClass.label"))); TextField<String> sopClassTextField = new TextField<String>("sopClass", sopClassModel); sopClassTextField.setRequired(true); sopClassTextField.add(new SOPClassValidator()); form.add(sopClassTextField); form.add(new Label("role.label", new ResourceModel("dicom.edit.transferCapability.role.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>( "role", roleModel, transferSyntaxList); form.add(roleDropDown.setNullValid(false)); form.add(new Label("transferSyntax.label", new ResourceModel("dicom.edit.transferCapability.transferSyntax.label"))) .add(new TextArea<String>("transferSyntax", transferSyntaxModel) .add(new TransferSyntaxValidator()).setRequired(true)); TextField<String> commonNameTextField = new TextField<String>("commonName", commonNameModel); form.add(new TransferCapabilityValidator(applicationEntity, sopClassTextField, roleDropDown, commonNameTextField)); final WebMarkupContainer optionalContainer = new WebMarkupContainer("optional"); form.add(optionalContainer.setOutputMarkupId(true).setOutputMarkupPlaceholderTag(true) .setVisible(false)); optionalContainer .add(new Label("commonName.label", new ResourceModel("dicom.edit.transferCapability.optional.commonName.label"))) .add(commonNameTextField); 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 { TransferCapability transferCapability = transferCapabilityModel == null ? new TransferCapability(commonNameModel.getObject(), sopClassModel.getObject(), roleModel.getObject(), transferSyntaxModel.getArray()) : transferCapabilityModel.getTransferCapability(); if (transferCapabilityModel != null) { applicationEntity.removeTransferCapabilityFor(transferCapability.getSopClass(), transferCapability.getRole()); transferCapability.setSopClass(sopClassModel.getObject()); transferCapability.setRole(roleModel.getObject()); transferCapability.setTransferSyntaxes(transferSyntaxModel.getArray()); transferCapability.setCommonName(commonNameModel.getObject()); } applicationEntity.addTransferCapability(transferCapability); ConfigTreeProvider.get().mergeDevice(applicationEntity.getDevice()); window.close(target); } catch (Exception e) { log.error(this.getClass().toString() + ": " + "Error modifying transfer capability: " + 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)); } catch (ConfigurationException e) { log.error("Error creating TransferCapabilityValidator for sopClass TextField", e); } }
From source file:org.dcm4chee.wizard.edit.proxy.CreateOrEditForwardOptionPage.java
License:LGPL
public CreateOrEditForwardOptionPage(final ModalWindow window, final ForwardOptionModel forwardOptionModel, final ConfigTreeNode aeNode) { super();/*from w w w.j a v a2 s . c o m*/ ProxyAEExtension proxyAEExtension = null; try { proxyAEExtension = ((ApplicationEntityModel) aeNode.getModel()).getApplicationEntity() .getAEExtension(ProxyAEExtension.class); } 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-forwardOption-title").setVisible(forwardOptionModel == null)); add(new WebMarkupContainer("edit-forwardOption-title").setVisible(forwardOptionModel != null)); setOutputMarkupId(true); final ExtendedForm form = new ExtendedForm("form"); form.setResourceIdPrefix("dicom.edit.forwardOption."); add(form); 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); if (forwardOptionModel == null) { destinationAETitleModel = Model.of(uniqueAETitles.get(0)); scheduleDaysModel = Model.of(); scheduleHoursModel = Model.of(); descriptionModel = Model.of(); convertEmf2SfModel = Model.of(false); } else { if (!uniqueAETitles.contains(forwardOptionModel.getDestinationAETitle())) { uniqueAETitles = new ArrayList<String>(uniqueAETitles); uniqueAETitles.add(forwardOptionModel.getDestinationAETitle()); Collections.sort(uniqueAETitles); } destinationAETitleModel = Model.of(forwardOptionModel.getDestinationAETitle()); scheduleDaysModel = Model.of(forwardOptionModel.getForwardOption().getSchedule().getDays()); scheduleHoursModel = Model.of(forwardOptionModel.getForwardOption().getSchedule().getHours()); descriptionModel = Model.of(forwardOptionModel.getForwardOption().getDescription()); convertEmf2SfModel = Model.of(forwardOptionModel.getForwardOption().isConvertEmf2Sf()); } form.add(new Label("destinationAETitle.label", new ResourceModel("dicom.edit.forwardOption.destinationAETitle.label"))) .add(new DropDownChoice<String>("destinationAETitle", destinationAETitleModel, uniqueAETitles) .setNullValid(false).setRequired(true).add(new DestinationAETitleValidator( destinationAETitleModel.getObject(), proxyAEExtension.getForwardOptions()))); final WebMarkupContainer optionalContainer = new WebMarkupContainer("optional"); form.add(optionalContainer.setOutputMarkupId(true).setOutputMarkupPlaceholderTag(true).setVisible(false)); optionalContainer .add(new Label("scheduleDays.label", new ResourceModel("dicom.edit.forwardOption.optional.scheduleDays.label"))) .add(new TextField<String>("scheduleDays", scheduleDaysModel) .add(new ScheduleValidator(ScheduleValidator.Type.DAYS))); optionalContainer .add(new Label("scheduleHours.label", new ResourceModel("dicom.edit.forwardOption.optional.scheduleHours.label"))) .add(new TextField<String>("scheduleHours", scheduleHoursModel) .add(new ScheduleValidator(ScheduleValidator.Type.HOURS))); optionalContainer .add(new Label("description.label", new ResourceModel("dicom.edit.forwardOption.optional.description.label"))) .add(new TextField<String>("description", descriptionModel)); optionalContainer .add(new Label("convertEmf2Sf.label", new ResourceModel("dicom.edit.forwardOption.optional.convertEmf2Sf.label"))) .add(new CheckBox("convertEmf2Sf", convertEmf2SfModel)); form.add(new Label("toggleOptional.label", new ResourceModel("dicom.edit.toggleOptional.label"))) .add(new AjaxCheckBox("toggleOptional", new Model<Boolean>(true)) { private static final long serialVersionUID = 1L; @Override protected void onUpdate(AjaxRequestTarget target) { target.add(optionalContainer.setVisible(this.getModelObject())); } }); optionalContainer.setVisible(true); form.add(new IndicatingAjaxButton("submit", new ResourceModel("saveBtn"), form) { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { try { Schedule schedule = new Schedule(); schedule.setDays(scheduleDaysModel.getObject()); schedule.setHours(scheduleHoursModel.getObject()); ForwardOption forwardOption = new ForwardOption(); forwardOption.setSchedule(schedule); forwardOption.setDescription(descriptionModel.getObject()); forwardOption.setConvertEmf2Sf(convertEmf2SfModel.getObject()); ProxyAEExtension proxyAEExtension = ((ApplicationEntityModel) aeNode.getModel()) .getApplicationEntity().getAEExtension(ProxyAEExtension.class); if (forwardOptionModel != null) proxyAEExtension.getForwardOptions().remove(forwardOptionModel.getDestinationAETitle()); proxyAEExtension.getForwardOptions().put(destinationAETitleModel.getObject(), forwardOption); ConfigTreeProvider.get().mergeDevice( ((ApplicationEntityModel) aeNode.getModel()).getApplicationEntity().getDevice()); window.close(target); } catch (Exception e) { log.error(this.getClass().toString() + ": " + "Error modifying forward option: " + 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.proxy.CreateOrEditForwardRulePage.java
License:LGPL
private void addSubmitButton(final ModalWindow window, final ForwardRuleModel forwardRuleModel, final ConfigTreeNode aeNode, final ExtendedForm form) { form.add(new IndicatingAjaxButton("submit", new ResourceModel("saveBtn"), form) { private static final long serialVersionUID = 1L; @Override//from w w w . j a va2 s .co m protected void onSubmit(AjaxRequestTarget target, Form<?> form) { try { ForwardRule forwardRule = forwardRuleModel == null ? new ForwardRule() : forwardRuleModel.getForwardRule(); forwardRule.setCommonName(commonNameModel.getObject()); forwardRule.setDestinationURIs(Arrays.asList(destinationURIModel.getArray())); forwardRule.setCallingAETs(Arrays.asList(callingAETitleModel.getArray())); forwardRule.setDimse(new ArrayList<Dimse>(dimsesModel.getDimses())); forwardRule.setExclusiveUseDefinedTC(exclusiveUseDefinedTCModel.getObject()); Schedule schedule = new Schedule(); schedule.setDays(scheduleDaysModel.getObject()); schedule.setHours(scheduleHoursModel.getObject()); forwardRule.setReceiveSchedule(schedule); forwardRule.setUseCallingAET(useCallingAETitleModel.getObject()); forwardRule.setSopClasses(Arrays.asList(sopClassModel.getArray())); forwardRule.setRunPIXQuery(runPIXQueryModel.getObject()); forwardRule.setMpps2DoseSrTemplateURI(mpps2DoseSrTemplateURIModel.getObject()); forwardRule.setDoseSrIODTemplateURI(doseSrIODTemplateURIModel.getObject()); forwardRule.setDescription(descriptionModel.getObject()); ProxyAEExtension proxyAEExtension = ((ApplicationEntityModel) aeNode.getModel()) .getApplicationEntity().getAEExtension(ProxyAEExtension.class); if (forwardRuleModel == null) proxyAEExtension.getForwardRules().add(forwardRule); ConfigTreeProvider.get().mergeDevice( ((ApplicationEntityModel) aeNode.getModel()).getApplicationEntity().getDevice()); window.close(target); } catch (Exception e) { log.error( this.getClass().toString() + ": " + "Error modifying forward rule: " + 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); } }); }
From source file:org.dcm4chee.wizard.edit.proxy.CreateOrEditRetryPage.java
License:LGPL
public CreateOrEditRetryPage(final ModalWindow window, final RetryModel retryModel, final ConfigTreeNode aeNode) { super();/*w w w .j av a 2 s .c o m*/ ProxyAEExtension proxyAEExtension = null; try { proxyAEExtension = ((ApplicationEntityModel) aeNode.getModel()).getApplicationEntity() .getAEExtension(ProxyAEExtension.class); } 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-retry-title").setVisible(retryModel == null)); add(new WebMarkupContainer("edit-retry-title").setVisible(retryModel != null)); setOutputMarkupId(true); final ExtendedForm form = new ExtendedForm("form"); form.setResourceIdPrefix("dicom.edit.retry."); add(form); if (retryModel == null) { suffixModel = Model.of(RetryObject.AAssociateRJ); delayModel = new TimeIntervalModel(Retry.DEFAULT_DELAY); retriesModel = Model.of(Retry.DEFAULT_RETRIES); deleteAfterFinalRetryModel = Model.of(false); } else { suffixModel = Model.of(retryModel.getRetry().getRetryObject()); delayModel = new TimeIntervalModel(retryModel.getRetry().getDelay()); retriesModel = Model.of(retryModel.getRetry().getNumberOfRetries()); deleteAfterFinalRetryModel = Model.of(retryModel.getRetry().isDeleteAfterFinalRetry()); } form.add(new Label("suffix.label", new ResourceModel("dicom.edit.retry.suffix.label"))); final ArrayList<RetryObject> suffixValueList = new ArrayList<RetryObject>(); ArrayList<String> suffixDisplayList = new ArrayList<String>(); for (RetryObject suffix : RetryObject.values()) { suffixValueList.add(suffix); suffixDisplayList.add(suffix.getRetryNote()); } DropDownChoice<RetryObject> suffixDropDown = new DropDownChoice<RetryObject>("suffix", suffixModel, suffixValueList, new IChoiceRenderer<Object>() { private static final long serialVersionUID = 1L; public String getDisplayValue(Object object) { return ((RetryObject) object).getRetryNote(); } public String getIdValue(Object object, int index) { return object.toString(); } }); form.add(suffixDropDown.setNullValid(false) .add(new RetrySuffixValidator( retryModel == null ? null : retryModel.getRetry().getRetryObject().getSuffix(), proxyAEExtension.getRetries()))); form.add(new Label("delay.label", new ResourceModel("dicom.edit.retry.delay.label"))) .add(new TextField<String>("delay", delayModel).setRequired(true).add(new TimeIntervalValidator()) .add(new AttributeModifier("title", new ResourceModel("dicom.edit.retry.delay.tooltip")))); form.add(new Label("retries.label", new ResourceModel("dicom.edit.retry.retries.label"))) .add(new TextField<Integer>("retries", retriesModel).setType(Integer.class).setRequired(true)); form.add(new Label("deleteAfterFinalRetry.label", new ResourceModel("dicom.edit.retry.deleteAfterFinalRetry.label"))) .add(new CheckBox("deleteAfterFinalRetry", deleteAfterFinalRetryModel)); form.add(new IndicatingAjaxButton("submit", new ResourceModel("saveBtn"), form) { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { try { Retry retry = new Retry(suffixModel.getObject(), delayModel.getSeconds(), retriesModel.getObject(), deleteAfterFinalRetryModel.getObject()); ProxyAEExtension proxyAEExtension = ((ApplicationEntityModel) aeNode.getModel()) .getApplicationEntity().getAEExtension(ProxyAEExtension.class); if (retryModel != null) proxyAEExtension.getRetries().remove(retryModel.getRetry()); proxyAEExtension.getRetries().add(retry); ConfigTreeProvider.get().mergeDevice( ((ApplicationEntityModel) aeNode.getModel()).getApplicationEntity().getDevice()); window.close(target); } catch (Exception e) { log.error(this.getClass().toString() + ": " + "Error modifying retry: " + 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)); }