// CEM: Patch... protected boolean isDynamicPerformersAssigned() { /*-CONFIG-*/ String m = "ForwardWFT.isDynamicPerformersAssigned - "; try { /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug( this, m + "Invoked fixed isDynamicPerformersAssigned - overrides incorrect impl in ForwardWorkflowTask", null, null); IWorkflowTask task = getWorkflowTask(); // CEM: fix - replace this incorrect code.. String page = this.getComponentPage(); if ("assignperformers".equals(this.getComponentPage())) { return isDynamicPerformersAssignedHelper(task.getNextForwardActivities()); } else { // return isDynamicPerformersAssignedHelper(task.getNextForwardPortNames()); return isDynamicPerformersAssignedHelper(task.getNextForwardActivities()); } } catch (DfException e) { throw new WrapperRuntimeException(e); } }
public void AutoSelectSinglePath() { // TODO - can we do this for FinishWFT? /*-CONFIG-*/ String m = "AutoSelectSinglePath - "; /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug( this, m + "check for premature Finish Click and single path selection", null, null); // see if the forward paths grid was ever instantiated Datagrid forwardgrid = (Datagrid) getControl(ForwardWorkflowTask.NEXT_TASKS_GRID_CONTROL_NAME); // if not, check how many paths there would be if (null == forwardgrid) { /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug( this, m + "forwardgrid is null, so Finish clicked before selecting a path, see if we can autoselect", null, null); try { /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "get wf task", null, null); IWorkflowTask task = this.getWorkflowTask(); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug( this, m + "get forward activities for task " + task.getActivityName(), null, null); IDfList forwardAct = task.getNextForwardActivities(); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "Get count of next activities", null, null); int count = forwardAct.getCount(); if (1 == count) { /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "only one next activity, so autoselect that one", null, null); // fake it baby IDfTypedObject act = (IDfTypedObject) forwardAct.get(0); String actId = act.getString("r_object_id"); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "id of next activity: " + actId, null, null); String cboxname = "__NEXT_TASKS_CHECKBOX_CONTROL_NAME" + actId; /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug( this, m + "creating fake checkbox for that activity: " + cboxname, null, null); Checkbox cbox = (Checkbox) getControl(cboxname, Checkbox.class); /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug(this, m + "selecting the cbox", null, null); cbox.setValue(true); // dangerous levels of hackitude here... // because the superclass has the "list of next activities" property private and immutable // from this class, I have to resort to this trickery // page == forward forces the superclass to check for selected forward paths. if it's // not forward, it just assumes the list is ready (which its not, and I // can't make it ready since it's frikking PRIVATE. thanks, DCTM /*-DEBUG-*/ if (DfLogger.isDebugEnabled(this)) DfLogger.debug( this, m + "set component page to forward so that the super.onCommitChanges call works correcly", null, null); this.setComponentPage("forward"); } } catch (DfException dfe) { throw new RuntimeException("Df Error in single path autoselect", dfe); } } }