public Condition evaluate(I_EncodeBusinessProcess process, I_Work worker) throws TaskFailedException { try { I_ConfigAceFrame config = (I_ConfigAceFrame) worker.readAttachement(WorkerAttachmentKeys.ACE_FRAME_CONFIG.name()); I_TermFactory tf = Terms.get(); I_ConfigAceFrame workingProfile = (I_ConfigAceFrame) process.getProperty(profilePropName); if (workingProfile == null) { workingProfile = (I_ConfigAceFrame) worker.readAttachement(WorkerAttachmentKeys.ACE_FRAME_CONFIG.name()); } Object conceptObj = process.getProperty(activeConceptPropName); I_GetConceptData concept = AceTaskUtil.getConceptFromObject(conceptObj); List<? extends I_ConceptAttributeTuple> attrTupels = concept.getConceptAttributeTuples( workingProfile.getAllowedStatus(), workingProfile.getViewPositionSetReadOnly(), workingProfile.getPrecedence(), workingProfile.getConflictResolutionStrategy()); I_IntSet pathSet = Terms.get().newIntSet(); ArrayList<UniversalAcePosition> positionList = new ArrayList<UniversalAcePosition>(); for (I_ConceptAttributeTuple t : attrTupels) { positionList.add( new UniversalAcePosition( tf.getUids(t.getPathId()), tf.convertToThickVersion(t.getVersion()))); pathSet.add(t.getPathId()); } ArrayList<String> addressList = new ArrayList<String>(); I_IntList inboxDescTypeList = Terms.get().newIntList(); inboxDescTypeList.add(ArchitectonicAuxiliary.Concept.USER_INBOX.localize().getNid()); for (int pathId : pathSet.getSetValues()) { I_GetConceptData pathConcept = Terms.get().getConcept(pathId); I_DescriptionTuple inboxDesc = pathConcept.getDescTuple(inboxDescTypeList, config); if (inboxDesc == null) { worker.getLogger().info("Cannot find inbox for: " + pathConcept.getInitialText()); worker.getLogger().info(" inboxDescTypeList: " + inboxDescTypeList.getListArray()); for (I_DescriptionVersioned desc : pathConcept.getDescriptions()) { for (I_DescriptionTuple tuple : desc.getTuples()) { worker.getLogger().info(" desc tuple: " + tuple); } } } else { addressList.add(inboxDesc.getText()); } } process.setProperty(addressListPropName, addressList); process.setProperty(positionListPropName, positionList); worker.getLogger().info("Selected status values have these positions: " + positionList); worker.getLogger().info("Got addresses from status values: " + addressList); return Condition.CONTINUE; } catch (IllegalArgumentException e) { throw new TaskFailedException(e); } catch (IllegalAccessException e) { throw new TaskFailedException(e); } catch (InvocationTargetException e) { throw new TaskFailedException(e); } catch (IntrospectionException e) { throw new TaskFailedException(e); } catch (IOException e) { throw new TaskFailedException(e); } catch (TerminologyException e) { throw new TaskFailedException(e); } }
/** * @see org.dwfa.bpa.process.I_DefineTask#complete(org.dwfa.bpa.process.I_EncodeBusinessProcess, * org.dwfa.bpa.process.I_Work) */ public Condition evaluate(I_EncodeBusinessProcess process, final I_Work worker) throws TaskFailedException { try { I_HelpMemberRefsetsCalculateConflicts mrc = Terms.get().getMemberRefsetConflictCalculator(Terms.get().getActiveAceFrameConfig()); mrc.setOutputDirectory(new File(".")); mrc.setValidateOnly(true); mrc.run(); I_ConfigAceFrame config = (I_ConfigAceFrame) worker.readAttachement(WorkerAttachmentKeys.ACE_FRAME_CONFIG.name()); final JPanel signpostPanel = config.getSignpostPanel(); final JPanel p = new JPanel(); final JScrollPane jsp = new JScrollPane(p); final List<String> details = mrc.getConclictDetails(); SwingUtilities.invokeAndWait( new Runnable() { public void run() { Component[] components = signpostPanel.getComponents(); for (int i = 0; i < components.length; i++) { signpostPanel.remove(components[i]); } signpostPanel.setLayout(new GridBagLayout()); p.setLayout(new GridBagLayout()); p.setBackground(Color.WHITE); GridBagConstraints c = new GridBagConstraints(); c.fill = GridBagConstraints.BOTH; c.gridx = 0; c.gridy = 0; c.gridheight = 5; c.weightx = 1.0; c.weighty = 1.0; c.anchor = GridBagConstraints.NORTHWEST; StringBuffer sb = new StringBuffer(); sb.append("<html><body><tr><td>"); int counter = 0; for (String conflict : details) { // Add to signpost if (counter == 0) { sb.append("<h1>" + conflict + "</h1><ul>"); } else { sb.append("<li>" + conflict + "</li>"); } counter++; } if (details.size() > 0) { sb.append("</ul>"); } sb.append("</td></tr></body></html>"); p.add(new JLabel(sb.toString()), c); signpostPanel.add(jsp, c); signpostPanel.validate(); Container cont = signpostPanel; while (cont != null) { cont.validate(); cont = cont.getParent(); } } }); if (mrc.hasConflicts()) { return Condition.TRUE; } return Condition.FALSE; } catch (InterruptedException e) { throw new TaskFailedException(e); } catch (InvocationTargetException e) { throw new TaskFailedException(e); } catch (Exception e) { throw new TaskFailedException(e); } } // End method evaluate