public List<ProgramRequirementInfo> getProgReqInfo(String stmtTypeId) { List<ProgramRequirementInfo> rules = new ArrayList<ProgramRequirementInfo>(); for(ProgramRequirementInfo progReqInfo : progReqInfos.values()) { if (progReqInfo.getStatement().getType().equals(stmtTypeId)) { rules.add(progReqInfo); } } return rules; }
private void retrieveAndSetupReqCompTypes() { statementRpcServiceAsync.getReqComponentTypesForStatementType(rule.getType(), new KSAsyncCallback<List<ReqComponentTypeInfo>>() { public void handleFailure(Throwable cause) { GWT.log("Failed to get req. component types for statement of type:" + rule.getType(), cause); Window.alert("Failed to get req. component types for statement of type:" + rule.getType()); } public void onSuccess(final List<ReqComponentTypeInfo> reqComponentTypeInfoList) { if (reqComponentTypeInfoList == null || reqComponentTypeInfoList.size() == 0) { GWT.log("Missing Requirement Component Types", null); Window.alert("Missing Requirement Component Types"); return; } editReqCompWidget.setReqCompList(reqComponentTypeInfoList); editReqCompWidget.setCustomWidgets(getCustomWidgets(reqComponentTypeInfoList)); } }); }
public boolean isRuleExists(String stmtTypeId) { boolean showNoRuleText = true; for(ProgramRequirementInfo ruleInfo : progReqInfos.values()) { if ((ruleInfo.getStatement().getType().equals(stmtTypeId)) && (progReqState.get(getInternalProgReqID(ruleInfo)) != ProgramRequirementsDataModel.requirementState.DELETED)) { showNoRuleText = false; } } return showNoRuleText; }
@Override public void onSuccess(List<ProgramRequirementInfo> programReqInfos) { //update rules list with new program requirements origProgReqInfos.clear(); origProgReqState.clear(); progReqInfos.clear(); progReqState.clear(); for (ProgramRequirementInfo programReqInfo : programReqInfos) { if (getStmtTypeInfo(programReqInfo.getStatement().getType()) == null) { Window.alert("Did not find corresponding statement type for program requirement of type: " + programReqInfo.getStatement().getType()); GWT.log("Did not find corresponding statement type for program requirement of type: " + programReqInfo.getStatement().getType(), null); } setRuleState(programReqInfo); origProgReqInfos.put(progReqIDs, cloneProgReq(programReqInfo)); origProgReqState.put(progReqIDs, requirementState.STORED); progReqInfos.put(progReqIDs, programReqInfo); progReqState.put(progReqIDs++, requirementState.STORED); } isInitialized = true; onReadyCallback.exec(true); } });
StatementTreeViewInfo stmtTree = new StatementTreeViewInfo(); stmtTree.setId(ProgramRequirementsSummaryView.generateStatementTreeId()); stmtTree.setType( affectedRule.getStatement().getType()); stmtTree.setReqComponents(affectedTopTree.getReqComponents()); List<StatementTreeViewInfo> stmtList = new ArrayList<StatementTreeViewInfo>();
public StatementInfo toStatementInfo(final StatementTreeViewInfo statementTreeViewInfo) { StatementInfo statementInfo = null; if (statementTreeViewInfo == null) return null; statementInfo = new StatementInfo(); copyValues(statementInfo, statementTreeViewInfo); // goes through the list of reqComponents in statementTreeViewInfo and extract the reqComponent ids if (statementTreeViewInfo.getReqComponents() != null) { List<String> reqCompIds = new ArrayList<String>(7); for (ReqComponentInfo reqComponentInfo : statementTreeViewInfo.getReqComponents()) { reqCompIds.add(reqComponentInfo.getId()); } statementInfo.setReqComponentIds(reqCompIds); } statementInfo.setState(statementTreeViewInfo.getState()); // TODO goes through the list of statements in statementTreeViewInfo and extract the statement ids if (statementTreeViewInfo.getStatements() != null) { List<String> statementIds = new ArrayList<String>(7); for (StatementTreeViewInfo subStatementTreeViewInfo : statementTreeViewInfo.getStatements()) { statementIds.add(subStatementTreeViewInfo.getId()); } statementInfo.setStatementIds(statementIds); } statementInfo.setType(statementTreeViewInfo.getType()); return statementInfo; }
private void createStatement(final StatementTreeViewInfo stmtInfo, Statement rootLuStatement) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, VersionMismatchException { for (StatementTreeViewInfo luNlStmt : stmtInfo.getStatements()) { Statement stmt = new Statement(); stmt.setName(luNlStmt.getName()); stmt.setOperator(luNlStmt.getOperator()); if (luNlStmt.getType() != null) { // TODO: Fix with CluService RC1.4 changes // stmt.setLuStatementType(this.cluService.getLuStatementType(luNlStmt.getStatementTypeId())); StatementType type = this.statementDao.fetch(StatementType.class, luNlStmt.getType()); stmt.setStatementType(type); } if (rootLuStatement.getChildren() == null) { rootLuStatement.setChildren(new ArrayList<Statement>()); } rootLuStatement.getChildren().add(stmt); if (luNlStmt.getStatements() == null || luNlStmt.getStatements().isEmpty()) { List<ReqComponentInfo> children = luNlStmt.getReqComponents(); // setReqComponentType(children); List<ReqComponent> customReqList = toReqComponents(children); stmt.setRequiredComponents(customReqList); } else { createStatement(luNlStmt, stmt); } } }
protected void updateRequirementWidgets(ProgramRequirementInfo programReqInfo) { if (programReqInfo != null) { StatementTypeInfo affectedStatementTypeInfo = rules.getStmtTypeInfo(programReqInfo.getStatement().getType()); SpanPanel reqPanel = perProgramRequirementTypePanel.get(affectedStatementTypeInfo.getId()); //this happens if user previously deleted requirement but didn't save when moving to another section //add widget if (reqPanel.getWidgetCount() == 0) { reqPanel.add(addProgramRequirement(reqPanel, programReqInfo)); return; } //replace widget with a new version for (int i = 0; i < reqPanel.getWidgetCount(); i++) { RulePreviewWidget rulePreviewWidget = (RulePreviewWidget) reqPanel.getWidget(i); if (rulePreviewWidget.getInternalProgReqID().equals(rules.getInternalProgReqID(programReqInfo))) { RulePreviewWidget newRulePreviewWidget = addProgramRequirement(reqPanel, programReqInfo); reqPanel.insert(newRulePreviewWidget, i); reqPanel.remove(rulePreviewWidget); break; } } } }
StatementType type = this.statementDao.fetch(StatementType.class, statementInfo.getType()); stmt.setStatementType(type);
private RulePreviewWidget addProgramRequirement(final SpanPanel requirementsPanel, final ProgramRequirementInfo progReqInfo) { Integer internalProgReqID = rules.getInternalProgReqID(progReqInfo); String stmtTypeId = progReqInfo.getStatement().getType(); int minCredits = (progReqInfo.getMinCredits() == null ? 0 : progReqInfo.getMinCredits()); int maxCredits = (progReqInfo.getMaxCredits() == null ? 0 : progReqInfo.getMaxCredits()); String plainDesc = (progReqInfo.getDescr() == null ? "" : progReqInfo.getDescr().getPlain()); final RulePreviewWidget rulePreviewWidget = new RulePreviewWidget(internalProgReqID, progReqInfo.getShortTitle(), getTotalCreditsString(minCredits, maxCredits), plainDesc, progReqInfo.getStatement(), isReadOnly, getCluSetWidgetList(progReqInfo.getStatement())); addRulePreviewWidgetHandlers(requirementsPanel, rulePreviewWidget, stmtTypeId, internalProgReqID); return rulePreviewWidget; }
@Override public void setWidgetValue(final FlowPanel panel, DataModel model, //Don't place a breakpoint here: It will stall debugging for some unknown reason! String path) { panel.clear(); List<ProgramRequirementInfo> programRequirementInfos = rulesComp.getProgReqInfo(stmtType.getId()); for (ProgramRequirementInfo rule : programRequirementInfos) { Integer internalProgReqID = rulesComp.getInternalProgReqID(rule); String stmtTypeId = rule.getStatement().getType(); int minCredits = (rule.getMinCredits() == null ? 0 : rule.getMinCredits()); int maxCredits = (rule.getMaxCredits() == null ? 0 : rule.getMaxCredits()); String plainDesc = (rule.getDescr() == null ? "" : rule.getDescr().getPlain()); final RulePreviewWidget ruleWidget = new RulePreviewWidget(internalProgReqID, rule.getShortTitle(), getTotalCreditsString(minCredits, maxCredits), plainDesc, rule.getStatement(), true, ProgramRequirementsSummaryView.getCluSetWidgetList(rule.getStatement())); panel.add(ruleWidget); } } };
@Override public void setWidgetValue(final FlowPanel panel, DataModel model, //Don't place a breakpoint here: It will stall debugging for some unknown reason! String path) { panel.clear(); List<ProgramRequirementInfo> programRequirementInfos = rules.getProgReqInfo(stmtType.getId()); for (ProgramRequirementInfo rule : programRequirementInfos) { Integer internalProgReqID = rules.getInternalProgReqID(rule); String stmtTypeId = rule.getStatement().getType(); int minCredits = (rule.getMinCredits() == null ? 0 : rule.getMinCredits()); int maxCredits = (rule.getMaxCredits() == null ? 0 : rule.getMaxCredits()); String plainDesc = (rule.getDescr() == null ? "" : rule.getDescr().getPlain()); final RulePreviewWidget ruleWidget = new RulePreviewWidget(internalProgReqID, rule.getShortTitle(), getTotalCreditsString(minCredits, maxCredits), plainDesc, rule.getStatement(), true, ProgramRequirementsSummaryView.getCluSetWidgetList(rule.getStatement())); panel.add(ruleWidget); } } };