/** * {@inheritDoc} */ @JsonIgnore @Override public boolean isChangeable() { return getId() != DEFAULT_ID; }
/** * Retrieves the {@link ApplicationDefinition} with the given identifier. * * @param id * unique id identifying the application definition to retrieve * @return Return the {@link ApplicationDefinition} with the given id, or null if no application * definition with the passed id could be found. * @throws BusinessException * if an application with the given id does not exist. */ public ApplicationDefinition getApplicationDefinition(int id) throws BusinessException { if (id == ApplicationDefinition.DEFAULT_ID) { return ApplicationDefinition.DEFAULT_APPLICATION_DEFINITION; } for (ApplicationDefinition appDef : applicationDefinitions) { if (appDef.getId() == id) { return appDef; } } throw new BusinessException("Retrieve application with id '" + id + "'.", BusinessContextErrorCodeEnum.UNKNOWN_APPLICATION); }
/** * {@inheritDoc} */ @Override public int hashCode() { final int prime = 31; int result = super.hashCode(); result = prime * result + ((application == null) ? 0 : application.getId()); result = prime * result + ((cmrRepositoryDefinition == null) ? 0 : cmrRepositoryDefinition.hashCode()); return result; }
/** * {@inheritDoc} */ @Override public void applicationDeleted(ApplicationDefinition application, CmrRepositoryDefinition repositoryDefinition) { ApplicationDefinitionEditorInput input = (ApplicationDefinitionEditorInput) getEditorInput(); if (!Objects.equals(repositoryDefinition, input.getCmrRepositoryDefinition())) { return; } if (Objects.equals(input.getApplication().getId(), application.getId())) { Display.getDefault().asyncExec(new Runnable() { @Override public void run() { close(false); } }); } }
/** * {@inheritDoc} */ @Override public void applicationUpdated(ApplicationDefinition application, CmrRepositoryDefinition repositoryDefinition) { ApplicationDefinitionEditorInput input = (ApplicationDefinitionEditorInput) getEditorInput(); if (!Objects.equals(repositoryDefinition, input.getCmrRepositoryDefinition())) { return; } if (Objects.equals(input.getApplication().getId(), application.getId())) { final ApplicationDefinitionEditorInput newInput = new ApplicationDefinitionEditorInput(application, repositoryDefinition); Display.getDefault().asyncExec(new Runnable() { @Override public void run() { setPartName(newInput.getName()); setInputWithNotify(newInput); } }); } }
/** * {@inheritDoc} */ @Override public ApplicationData registerApplication(ApplicationDefinition applicationDefinition) { int applicationId = deriveInstanceId(applicationDefinition.getApplicationName(), applicationDefinition.getId()); ApplicationData application = getApplicationForId(applicationId); if (null == application) { application = new ApplicationData(applicationId, applicationDefinition.getId(), applicationDefinition.getApplicationName()); ApplicationData existingApplication = applications.putIfAbsent(applicationId, application); if (null != existingApplication) { application = existingApplication; } } return application; }
/** * Adds application definition to the business context. Inserts it to the list before the * element with the passed index. * * @param appDefinition * {@link ApplicationDefinition} instance to add * @param insertBeforeIndex * insert before this index * @return added {@link ApplicationDefinition} instance * @throws BusinessException * if application cannot be added. */ public ApplicationDefinition addApplicationDefinition(ApplicationDefinition appDefinition, int insertBeforeIndex) throws BusinessException { if (appDefinition == null) { throw new BusinessException("Adding application 'null'.", BusinessContextErrorCodeEnum.UNKNOWN_APPLICATION); } else if (applicationDefinitions.contains(appDefinition)) { throw new BusinessException("Adding application " + appDefinition.getApplicationName() + " with id " + appDefinition.getId() + ".", BusinessContextErrorCodeEnum.DUPLICATE_ITEM); } else if ((insertBeforeIndex < 0) || (insertBeforeIndex > applicationDefinitions.size())) { throw new BusinessException("Adding application" + appDefinition.getApplicationName() + " with id " + appDefinition.getId() + " at index " + insertBeforeIndex + ".", BusinessContextErrorCodeEnum.INVALID_MOVE_OPRATION); } else { applicationDefinitions.add(insertBeforeIndex, appDefinition); return appDefinition; } }
/** * {@inheritDoc} */ @Override public boolean test(Object receiver, String property, Object[] args, Object expectedValue) { if (receiver instanceof IApplicationProvider) { IApplicationProvider applicationProvider = (IApplicationProvider) receiver; if (IS_DEFAULT_APP_PROPERTY.equals(property)) { return applicationProvider.getApplication().getId() == ApplicationDefinition.DEFAULT_ID; } else if (CAN_MOVE_UP_PROPERTY.equals(property)) { return applicationProvider.getIndexInParentList() > 0; } else if (CAN_MOVE_DOWN_PROPERTY.equals(property)) { int listSize = applicationProvider.getParentList().size(); return applicationProvider.getIndexInParentList() < listSize - 2; } } if (receiver instanceof BusinessTransactionDefinition) { BusinessTransactionDefinition businessTransactionDef = (BusinessTransactionDefinition) receiver; if (IS_DEFAULT_BTX_PROPERTY.equals(property)) { return businessTransactionDef.getId() == BusinessTransactionDefinition.DEFAULT_ID; } else if (CAN_MOVE_UP_PROPERTY.equals(property) && ArrayUtils.isNotEmpty(args) && args[0] instanceof ApplicationDefinition) { return ((ApplicationDefinition) args[0]).getBusinessTransactionDefinitions().indexOf(businessTransactionDef) > 0; } else if (CAN_MOVE_DOWN_PROPERTY.equals(property) && ArrayUtils.isNotEmpty(args) && args[0] instanceof ApplicationDefinition) { int index = ((ApplicationDefinition) args[0]).getBusinessTransactionDefinitions().indexOf(businessTransactionDef); return index >= 0 && index < ((ApplicationDefinition) args[0]).getBusinessTransactionDefinitions().size() - 2; } } return false; }
/** * {@inheritDoc} */ @Override protected Color getForeground(Object element, int index) { if (element instanceof IApplicationProvider) { ApplicationDefinition appDefinition = ((IApplicationProvider) element).getApplication(); if (appDefinition.getId() == ApplicationDefinition.DEFAULT_ID) { return Display.getCurrent().getSystemColor(SWT.COLOR_DARK_CYAN); } } return super.getForeground(element, index); } }
/** * Returns application definition image. * * @param appDefinition * {@link ApplicationDefinition} to get image for. * @return Returns image for application definition. */ public static Image getApplicationDefinitionImage(ApplicationDefinition appDefinition) { if (appDefinition.getId() == ApplicationDefinition.DEFAULT_ID) { return InspectIT.getDefault().getImage(InspectITImages.IMG_APPLICATION_GREY); } else { return InspectIT.getDefault().getImage(InspectITImages.IMG_APPLICATION); } }
/** * Updates the given {@link ApplicationDefinition}. * * @param appDefinition * {@link ApplicationDefinition} to update * * @throws BusinessException * If update fails. * @return the updated {@link ApplicationDefinition} instance. */ public ApplicationDefinition updateApplicationDefinition(ApplicationDefinition appDefinition) throws BusinessException { if (appDefinition == null) { throw new BusinessException("Updating application 'null'.", BusinessContextErrorCodeEnum.UNKNOWN_APPLICATION); } int index = applicationDefinitions.indexOf(appDefinition); if (index < 0) { throw new BusinessException("Updating application " + appDefinition.getApplicationName() + " with id '" + appDefinition.getId() + "'.", BusinessContextErrorCodeEnum.UNKNOWN_APPLICATION); } ApplicationDefinition currentApplicationDefinition = applicationDefinitions.get(index); appDefinition.setRevision(appDefinition.getRevision() + 1); if ((currentApplicationDefinition != appDefinition) && ((currentApplicationDefinition.getRevision() + 1) != appDefinition.getRevision())) { // NOPMD throw new BusinessException("Update of the application definition '" + appDefinition.getApplicationName() + "'.", ConfigurationInterfaceErrorCodeEnum.REVISION_CHECK_FAILED); } applicationDefinitions.set(index, appDefinition); return appDefinition; }
application = new ApplicationData(idGenerator.getAndIncrement(), applicationDefinition.getId(), applicationDefinition.getApplicationName());
newApplication = cmrRepositoryDefinition.getConfigurationInterfaceService().addApplicationDefinition(newApplication, insertBeforeIndex); InspectIT.getDefault().getInspectITConfigurationInterfaceManager().applicationCreated(newApplication, insertBeforeIndex, cmrRepositoryDefinition); new OpenApplicationDefinitionJob(cmrRepositoryDefinition, newApplication.getId(), workbench.getActiveWorkbenchWindow().getActivePage()).schedule(); } catch (Exception e) { InspectIT.getDefault().createErrorDialog("Application can not be created.", e, -1);
toolBarManager.update(true); if (applicationDefinition.getId() == ApplicationDefinition.DEFAULT_ID) { ((ToolBarManager) toolBarManager).getControl().setEnabled(false); } else {