public void attemptToFinishActiveJob(String caseID, String taskID) { Set workItems = _engineClient.getAllWorkItems(); for (Iterator iterator = workItems.iterator(); iterator.hasNext(); ) { YWorkItem item = (YWorkItem) iterator.next(); if (item.getCaseID().toString().equals(caseID) && item.getTaskID().equals(taskID)) { try { String outputData = _myActiveTasks.getOutputData(caseID, taskID); /** AJH: Write the output data into test data file */ File testDataDir = YAdminGUI.getSpecTestDataDirectory(item.getSpecificationID().getKey()); File taskInputData = new File(testDataDir, taskID + ".xml"); if (!taskInputData.exists()) { logger.info("Creating task data file - " + taskInputData.getAbsolutePath()); taskInputData.createNewFile(); } StringUtil.stringToFile(taskInputData.getAbsolutePath(), outputData); // _engineClient.completeWorkItem(item, outputData, inSequenceWorkitemIDs); _engineClient.completeWorkItem(item, outputData, null, YEngine.WorkItemCompletion.Normal); } catch (YDataStateException e) { String errors = e.getMessage(); if (errors.indexOf("FAILED TO VALIDATE AGAINST SCHEMA =") != -1) { System.out.println(e.getMessage()); new SpecificationQueryProcessingValidationErrorBox(_frame, item, e); } else { new UserInputValidationErrorBox(_frame, item, e); System.out.println(e.getMessage()); } } catch (Exception e) { // todo AJH - Create defalut skeleton at this point???? reportGeneralProblem(e); } } } }
private JPanel createCentrePanel(YDataStateException exception) { JPanel centrePanel = new JPanel(new GridLayout(1, 2)); JPanel msgPanel = new JPanel(new BorderLayout()); msgPanel.setBackground(YAdminGUI._apiColour); msgPanel.setBorder( BorderFactory.createCompoundBorder( BorderFactory.createTitledBorder( BorderFactory.createEtchedBorder(), "Schema for completing task"), BorderFactory.createEmptyBorder(10, 10, 10, 10))); JTextPane msgTextPane = new JTextPane(); msgTextPane.setContentType("text/plain"); msgTextPane.setFont(new Font("courier", Font.PLAIN, 12)); msgTextPane.setForeground(Color.RED); msgTextPane.setText(exception.getMessage()); msgTextPane.setEditable(false); msgTextPane.setBackground(Color.LIGHT_GRAY); JPanel noWrapPanel = new JPanel(); noWrapPanel.setLayout(new BorderLayout()); noWrapPanel.add(msgTextPane); msgPanel.add(new JScrollPane(noWrapPanel)); centrePanel.add(msgPanel, BorderLayout.NORTH); return centrePanel; }
// MUTATORS ############################################################################ public void applyForWorkItem(String caseID, String taskID) throws YPersistenceException { Set workItems = _engineClient.getAvailableWorkItems(); for (Iterator iterator = workItems.iterator(); iterator.hasNext(); ) { YWorkItem item = (YWorkItem) iterator.next(); if (item.getCaseID().toString().equals(caseID) && item.getTaskID().equals(taskID)) { try { _engineClient.startWorkItem(item, null); } catch (YStateException e) { e.printStackTrace(); reportGeneralProblem(e); } catch (YDataStateException e) { e.printStackTrace(); new SpecificationQueryProcessingValidationErrorBox(_frame, item, e); } catch (YAWLException e) { e.printStackTrace(); reportGeneralProblem(e); } } } }
private JPanel createCentrePanel(YDataStateException exception) { XMLOutputter xmlOut = new XMLOutputter(Format.getPrettyFormat()); JPanel centrePanel = new JPanel(new GridLayout(1, 2)); JPanel schemaPanel = new JPanel(new BorderLayout()); schemaPanel.setBackground(YAdminGUI._apiColour); schemaPanel.setBorder( BorderFactory.createCompoundBorder( BorderFactory.createTitledBorder( BorderFactory.createEtchedBorder(), "Schema for completing task"), BorderFactory.createEmptyBorder(10, 10, 10, 10))); JTextPane schemaTextPane = new JTextPane(); schemaTextPane.setContentType("text/xml"); schemaTextPane.setFont(new Font("courier", Font.PLAIN, 12)); String schemaXML = xmlOut.outputString(exception.getSchema()); /** AJH: Trap various XML format errors gracefully. */ try { String xml = schemaXML.substring(schemaXML.indexOf('<'), schemaXML.lastIndexOf("</xsd:schema>") + 13); schemaTextPane.setText(xml); } catch (Exception e) { schemaTextPane.setText(schemaXML); } schemaTextPane.setEditable(false); schemaTextPane.setBackground(Color.LIGHT_GRAY); JPanel noWrapPanel = new JPanel(); noWrapPanel.setLayout(new BorderLayout()); noWrapPanel.add(schemaTextPane); schemaPanel.add(new JScrollPane(noWrapPanel)); JPanel rightPanel = new JPanel(new GridLayout(2, 1)); JPanel dataPanel = new JPanel(new BorderLayout()); dataPanel.setBackground(YAdminGUI._apiColour); dataPanel.setBorder( BorderFactory.createCompoundBorder( BorderFactory.createTitledBorder( BorderFactory.createEtchedBorder(), "The data that failed to validate"), BorderFactory.createEmptyBorder(10, 10, 10, 10))); JTextPane dataTextPane = new JTextPane(); dataTextPane.setContentType("text/xml"); dataTextPane.setFont(new Font("courier", Font.PLAIN, 12)); String data = xmlOut.outputString(exception.get_dataInput()); /** AJH: Trap various XML format errors gracefully. */ try { String temp = data.substring(data.lastIndexOf("<?xml"), data.lastIndexOf('>')); dataTextPane.setText(temp); } catch (Exception e) { dataTextPane.setText(data); } dataTextPane.setEditable(false); dataTextPane.setBackground(Color.LIGHT_GRAY); JPanel noWrapPanel2 = new JPanel(); noWrapPanel2.setLayout(new BorderLayout()); noWrapPanel2.add(dataTextPane); dataPanel.add(new JScrollPane(noWrapPanel2)); JPanel errorPanel = new JPanel(new BorderLayout()); errorPanel.setBackground(YAdminGUI._apiColour); errorPanel.setBorder( BorderFactory.createCompoundBorder( BorderFactory.createTitledBorder( BorderFactory.createEtchedBorder(), "The error message from validation engine"), BorderFactory.createEmptyBorder(10, 10, 10, 10))); JTextPane errorTextPane = new JTextPane(); errorTextPane.setContentType("text/plain"); errorTextPane.setFont(new Font("courier", Font.PLAIN, 12)); /** AJH: Trap various XML format errors gracefully. */ try { String error = schemaXML.substring(schemaXML.lastIndexOf("ERRORS ="), schemaXML.length()); errorTextPane.setText(error); } catch (Exception e) { // null action ! } errorTextPane.setText(exception.getErrors()); errorTextPane.setEditable(false); errorTextPane.setBackground(Color.LIGHT_GRAY); JPanel noWrapPanel3 = new JPanel(); noWrapPanel3.setLayout(new BorderLayout()); noWrapPanel3.add(errorTextPane); errorPanel.add(new JScrollPane(noWrapPanel3)); rightPanel.add(dataPanel); rightPanel.add(errorPanel); centrePanel.add(schemaPanel, BorderLayout.NORTH); centrePanel.add(rightPanel, BorderLayout.CENTER); return centrePanel; }