/** * {@inheritDoc} */ @Override public boolean isChangeable() { return getId() != DEFAULT_ID; }
/** * Retrieves the {@link BusinessTransactionDefinition} with the given identifier. * * @param id * unique id identifying the business transaction to retrieve * @return Return the {@link BusinessTransactionDefinition} with the given id, or null if no * {@link BusinessTransactionDefinition} with the passed id could be found. * * @throws BusinessException * if no {@link BusinessTransactionDefinition} with the given identifier exists. */ public BusinessTransactionDefinition getBusinessTransactionDefinition(int id) throws BusinessException { if (id == BusinessTransactionDefinition.DEFAULT_ID) { return BusinessTransactionDefinition.DEFAULT_BUSINESS_TRANSACTION_DEFINITION; } for (BusinessTransactionDefinition businessTxDef : businessTransactionDefinitions) { if (businessTxDef.getId() == id) { return businessTxDef; } } throw new BusinessException("Retrieve business transaction with id '" + id + "'.", BusinessContextErrorCodeEnum.UNKNOWN_BUSINESS_TRANSACTION); }
/** * Adds business transaction definition to the application definition. Inserts it to the list * before the element with the passed index. * * @param businessTransactionDefinition * {@link BusinessTransactionDefinition} instance to add * @param insertBeforeIndex * insert before this index * @throws BusinessException * If the application definition already contains a business transaction with same * identifier or the insertBeforeIndex is not valid. */ public void addBusinessTransactionDefinition(BusinessTransactionDefinition businessTransactionDefinition, int insertBeforeIndex) throws BusinessException { if (businessTransactionDefinition == null) { throw new BusinessException("Adding business transaction 'null'.", BusinessContextErrorCodeEnum.UNKNOWN_BUSINESS_TRANSACTION); } else if (businessTransactionDefinitions.contains(businessTransactionDefinition)) { throw new BusinessException( "Adding business transaction " + businessTransactionDefinition.getBusinessTransactionDefinitionName() + " with id " + businessTransactionDefinition.getId() + ".", BusinessContextErrorCodeEnum.DUPLICATE_ITEM); } else if ((insertBeforeIndex < 0) || (insertBeforeIndex > businessTransactionDefinitions.size())) { throw new BusinessException("Adding business transaction " + businessTransactionDefinition.getBusinessTransactionDefinitionName() + " with id " + businessTransactionDefinition.getId() + " at index " + insertBeforeIndex + ".", BusinessContextErrorCodeEnum.INVALID_MOVE_OPRATION); } else { businessTransactionDefinitions.add(insertBeforeIndex, businessTransactionDefinition); } }
/** * {@inheritDoc} */ @Override protected Color getForeground(Object element, int index) { if (element instanceof BusinessTransactionDefinition) { BusinessTransactionDefinition bTxDef = (BusinessTransactionDefinition) element; if (bTxDef.getId() == BusinessTransactionDefinition.DEFAULT_ID) { return Display.getCurrent().getSystemColor(SWT.COLOR_DARK_CYAN); } } return super.getForeground(element, index); } }
/** * {@inheritDoc} */ @Override public BusinessTransactionData registerBusinessTransaction(ApplicationData application, BusinessTransactionDefinition businessTransactionDefinition, String businessTransactionName) { int businessTxId = deriveInstanceId(businessTransactionName, businessTransactionDefinition.getId()); BusinessTransactionData businessTransaction = getBusinessTransactionForId(application.getId(), businessTxId); if (null == businessTransaction) { businessTransaction = new BusinessTransactionData(businessTxId, businessTransactionDefinition.getId(), application, businessTransactionName); Pair<Integer, Integer> key = new Pair<Integer, Integer>(application.getId(), businessTransaction.getId()); BusinessTransactionData existingBusinessTx = businessTransactions.putIfAbsent(key, businessTransaction); if (null != existingBusinessTx) { businessTransaction = existingBusinessTx; } } return businessTransaction; }
/** * {@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; }
/** * Returns business transaction definition image. * * @param businessTxDefinition * {@link BusinessTransactionDefinition} to get image for. * @return Returns image for business transaction definition. */ public static Image getBusinessTransactionDefinitionImage(BusinessTransactionDefinition businessTxDefinition) { if (businessTxDefinition.getId() == BusinessTransactionDefinition.DEFAULT_ID) { return InspectIT.getDefault().getImage(InspectITImages.IMG_BUSINESS_TRANSACTION_GREY); } else { return InspectIT.getDefault().getImage(InspectITImages.IMG_BUSINESS_TRANSACTION); } }
/** * {@inheritDoc} */ @Override public void selectionChanged(IFormPart part, ISelection selection) { if (!selection.isEmpty()) { Object selected = ((StructuredSelection) selection).getFirstElement(); if (Objects.equal(selectedBusinessTransaction, selected)) { return; } selectedBusinessTransaction = (BusinessTransactionDefinition) selected; if (null != selectedBusinessTransaction) { rulesPart.initContent(selectedBusinessTransaction); rulesPart.setDescriptionText("Define the matching rule that should be used to match the selected business transaction:"); nameExtractionPart.setEditable(selectedBusinessTransaction.getId() != BusinessTransactionDefinition.DEFAULT_ID); nameExtractionPart.init(selectedBusinessTransaction); } } }
businessTx_1 = new BusinessTransactionData(idGenerator.getAndIncrement(), businessTxDefinition_1.getId(), application, businessTxDefinition_1.getBusinessTransactionDefinitionName()); applicationDefinition.addBusinessTransactionDefinition(businessTxDefinition_1);
/** * Deletes selected business transaction definitions from the table. */ private void deleteSelectedBusinessTransactions() { ISelection selection = tableViewer.getSelection(); if ((selection instanceof StructuredSelection) && !selection.isEmpty()) { boolean itemsDeleted = false; for (Object selectedElement : ((StructuredSelection) selection).toList()) { BusinessTransactionDefinition businessTxDefinition = (BusinessTransactionDefinition) selectedElement; if (businessTxDefinition.getId() != BusinessTransactionDefinition.DEFAULT_ID) { getApplication().deleteBusinessTransactionDefinition(businessTxDefinition); validationManager.validationStatesRemoved(businessTxDefinition); itemsDeleted = true; } } if (itemsDeleted) { updateContent(StructuredSelection.EMPTY); managedForm.fireSelectionChanged(BusinessTransactionMasterBlock.this, StructuredSelection.EMPTY); markDirty(); } } }
businessTx_1 = new BusinessTransactionData(idGenerator.getAndIncrement(), businessTxDefinition_1.getId(), application, businessTxDefinition_1.getBusinessTransactionDefinitionName()); businessTxDefinition_2 = new BusinessTransactionDefinition(idGenerator.getAndIncrement(), "businessTxDefinition_2", null); businessTx_2 = new BusinessTransactionData(idGenerator.getAndIncrement(), businessTxDefinition_2.getId(), application, businessTxDefinition_2.getBusinessTransactionDefinitionName()); businessTx_unknown = new BusinessTransactionData(idGenerator.getAndIncrement(), BusinessTransactionDefinition.DEFAULT_ID, application, "Unknown Transaction"); applicationDefinition.addBusinessTransactionDefinition(businessTxDefinition_1);
/** * Start modification of the (first) selected business transaction definition. */ private void editSelectedBusinessTransaction() { ISelection selection = tableViewer.getSelection(); if (selection instanceof StructuredSelection) { BusinessTransactionDefinition businessTransactionDef = (BusinessTransactionDefinition) ((StructuredSelection) selection).getFirstElement(); if (businessTransactionDef.getId() == BusinessTransactionDefinition.DEFAULT_ID) { return; } ApplicationDefinition appDefinition = getApplication(); String[] existingBusinessTxNames = new String[appDefinition.getBusinessTransactionDefinitions().size()]; int i = 0; for (BusinessTransactionDefinition businessTx : appDefinition.getBusinessTransactionDefinitions()) { existingBusinessTxNames[i] = businessTx.getBusinessTransactionDefinitionName(); i++; } EditNameDescriptionDialog dialog = new EditNameDescriptionDialog(Display.getCurrent().getActiveShell(), businessTransactionDef.getBusinessTransactionDefinitionName(), businessTransactionDef.getDescription(), "Edit Business Transaction", "Enter new business transaction name and/or description", existingBusinessTxNames); if (Dialog.OK == dialog.open()) { businessTransactionDef.setBusinessTransactionDefinitionName(dialog.getName()); if (StringUtils.isNotBlank(dialog.getDescription())) { businessTransactionDef.setDescription(dialog.getDescription()); } updateContent(new StructuredSelection(businessTransactionDef)); markDirty(); } } }