private static void AddChartTransitionVariables(SyncroSimLayoutItemCollection items, Project project) { string AmountLabel = null; string UnitsLabel = null; TerminologyUnit TermUnit = 0; DataSheet dsterm = project.GetDataSheet(Strings.DATASHEET_TERMINOLOGY_NAME); TerminologyUtilities.GetAmountLabelTerminology(dsterm, ref AmountLabel, ref TermUnit); UnitsLabel = TerminologyUtilities.TerminologyUnitToString(TermUnit); string disp = string.Format(CultureInfo.InvariantCulture, "{0} ({1})", AmountLabel, UnitsLabel); SyncroSimLayoutItem Normal = new SyncroSimLayoutItem(Strings.TRANSITION_AMOUNT_VARIABLE_NAME, disp, false); SyncroSimLayoutItem Proportion = new SyncroSimLayoutItem(Strings.TRANSITION_PROPORTION_VARIABLE_NAME, "Proportion", false); Normal.Properties.Add(new MetaDataProperty("dataSheet", "stsim_OutputStratumTransition")); Proportion.Properties.Add(new MetaDataProperty("dataSheet", "stsim_OutputStratumTransition")); Normal.Properties.Add(new MetaDataProperty("column", "Amount")); Proportion.Properties.Add(new MetaDataProperty("column", "Amount")); Normal.Properties.Add(new MetaDataProperty("skipTimestepZero", "True")); Proportion.Properties.Add(new MetaDataProperty("skipTimestepZero", "True")); Normal.Properties.Add(new MetaDataProperty("defaultValue", "0.0")); Proportion.Properties.Add(new MetaDataProperty("defaultValue", "0.0")); items.Add(Normal); items.Add(Proportion); }
private static void AddStockGroupChartVariables(Project project, SyncroSimLayoutItemCollection items) { DataSheet ds = project.GetDataSheet(Constants.DATASHEET_STOCK_GROUP_NAME); if (ds.HasData()) { //Normal SyncroSimLayoutItem ItemNormal = new SyncroSimLayoutItem(STOCK_GROUP_VAR_NAME, "Total", false); ItemNormal.Properties.Add(new MetaDataProperty("dataSheet", Constants.DATASHEET_OUTPUT_STOCK_NAME)); ItemNormal.Properties.Add(new MetaDataProperty("column", "Amount")); ItemNormal.Properties.Add(new MetaDataProperty("defaultValue", "0.0")); items.Add(ItemNormal); //Density SyncroSimLayoutItem ItemDensity = new SyncroSimLayoutItem(STOCK_GROUP_DENSITY_VAR_NAME, "Density", false); ItemDensity.Properties.Add(new MetaDataProperty("dataSheet", Constants.DATASHEET_OUTPUT_STOCK_NAME)); ItemDensity.Properties.Add(new MetaDataProperty("column", "Amount")); ItemDensity.Properties.Add(new MetaDataProperty("defaultValue", "0.0")); items.Add(ItemDensity); } }
public override void RefreshCriteria(SyncroSimLayout layout, Project project) { //Stock Groups SyncroSimLayoutItem StockGroupsGroup = new SyncroSimLayoutItem(STOCK_GROUP_NAME, "Stocks", true); StockGroupsGroup.Properties.Add(new MetaDataProperty("dataSheet", Constants.DATASHEET_OUTPUT_STOCK_NAME)); StockGroupsGroup.Properties.Add(new MetaDataProperty("filter", "StratumID|SecondaryStratumID|TertiaryStratumID|StateClassID|StockGroupID")); AddStockGroupChartVariables(project, StockGroupsGroup.Items); if (StockGroupsGroup.Items.Count > 0) { layout.Items.Add(StockGroupsGroup); } //Flow Groups SyncroSimLayoutItem FlowGroupsGroup = new SyncroSimLayoutItem(FLOW_GROUP_NAME, "Flows", true); FlowGroupsGroup.Properties.Add(new MetaDataProperty("dataSheet", Constants.DATASHEET_OUTPUT_FLOW_NAME)); FlowGroupsGroup.Properties.Add(new MetaDataProperty("filter", "FromStratumID|FromSecondaryStratumID|FromTertiaryStratumID|FromStateClassID|FromStockTypeID|TransitionTypeID|ToStratumID|ToStateClassID|ToStockTypeID|FlowGroupID|EndStratumID|EndSecondaryStratumID|EndTertiaryStratumID|EndStateClassID")); AddFlowGroupChartVariables(project, FlowGroupsGroup.Items); if (FlowGroupsGroup.Items.Count > 0) { layout.Items.Add(FlowGroupsGroup); } }
protected override void ModifyLayout(SyncroSimLayout layout) { if (this.Library == null) { Debug.Assert(false); return; } if (this.Library.Session.ActiveProject == null) { Debug.Assert(false); return; } SyncroSimLayoutItem PrimaryStrataGroup = layout.Items.FindItem("stsim_PrimaryStrata", true); if (PrimaryStrataGroup == null) { Debug.Assert(false); return; } string psl = null; string ssl = null; string tsl = null; DataSheet dsterm = this.Library.Session.ActiveProject.GetDataSheet(Strings.DATASHEET_TERMINOLOGY_NAME); TerminologyUtilities.GetStratumLabelTerminology(dsterm, ref psl, ref ssl, ref tsl); PrimaryStrataGroup.DisplayName = psl; }
protected override void ModifyLayout(SyncroSimLayout layout) { SyncroSimLayoutItem ExportGroup = layout.Items.GetItem("stsim_Export"); if (ExportGroup != null) { SyncroSimLayoutItem ReportsGroup = ExportGroup.Items.GetItem("stsim_Reports"); SyncroSimLayoutItem MapsGroup = ExportGroup.Items.GetItem("stsim_Maps"); if (ReportsGroup != null) { ReportsGroup.Items.Add(new SyncroSimLayoutItem("stsimsf_SummaryStockReport", "Stock Type/Group", false)); ReportsGroup.Items.Add(new SyncroSimLayoutItem("stsimsf_SummaryFlowReport", "Flow Type/Group", false)); } if (MapsGroup != null) { SyncroSimLayoutItem StkGroup = new SyncroSimLayoutItem("stsimsf_StockGroups", "Stocks Groups", true); StkGroup.Items.Add(new SyncroSimLayoutItem("stsimsf_StockRasterMap", "Iteration", false)); StkGroup.Items.Add(new SyncroSimLayoutItem("stsimsf_AvgStockRasterMap", "Average", false)); MapsGroup.Items.Add(StkGroup); SyncroSimLayoutItem FloGroup = new SyncroSimLayoutItem("stsimsf_FlowGroups", "Flow Groups", true); FloGroup.Items.Add(new SyncroSimLayoutItem("stsimsf_FlowRasterMap", "Iteration", false)); FloGroup.Items.Add(new SyncroSimLayoutItem("stsimsf_LateralFlowRasterMap", "Iteration - Lateral", false)); FloGroup.Items.Add(new SyncroSimLayoutItem("stsimsf_AvgFlowRasterMap", "Average", false)); FloGroup.Items.Add(new SyncroSimLayoutItem("stsimsf_AvgLateralFlowRasterMap", "Average - Lateral", false)); MapsGroup.Items.Add(FloGroup); } } }
private static void AddChartTSTVariables(SyncroSimLayoutItemCollection items, Project project) { SyncroSimLayoutItem v = new SyncroSimLayoutItem(Strings.TST_VARIABLE_NAME, "Amount", false); v.Properties.Add(new MetaDataProperty("dataSheet", "stsim_OutputTST")); v.Properties.Add(new MetaDataProperty("column", "Amount")); v.Properties.Add(new MetaDataProperty("defaultValue", "0.0")); items.Add(v); }
private static void AddChartAttributeVariables(SyncroSimLayoutItemCollection items, DataView attrGroupView, DataSheet attrGroupDataSheet, DataView attrView, DataSheet attrDataSheet, string outputTableName, string attributeTypeColumnName, bool skipTimestepZero) { Debug.Assert(Strings.DATASHEET_STATE_ATTRIBUTE_TYPE_UNITS_COLUMN_NAME == Strings.DATASHEET_TRANSITION_ATTRIBUTE_TYPE_UNITS_COLUMN_NAME); SyncroSimLayoutItem NonGroupedDensityGroup = new SyncroSimLayoutItem(DENSITY_GROUP_NAME + "STSIM_NON_GROUPED", "Density", true); AddChartNonGroupedAttributes( items, attrView, attrDataSheet, outputTableName, attributeTypeColumnName, skipTimestepZero, NonGroupedDensityGroup); if (NonGroupedDensityGroup.Items.Count > 0) { items.Add(NonGroupedDensityGroup); } Dictionary <string, SyncroSimLayoutItem> GroupsDict = new Dictionary <string, SyncroSimLayoutItem>(); List <SyncroSimLayoutItem> GroupsList = new List <SyncroSimLayoutItem>(); foreach (DataRowView drv in attrGroupView) { string GroupName = Convert.ToString(drv.Row[Strings.DATASHEET_NAME_COLUMN_NAME], CultureInfo.InvariantCulture); string DensityGroupName = DENSITY_GROUP_NAME + GroupName; SyncroSimLayoutItem Group = new SyncroSimLayoutItem(GroupName, GroupName, true); SyncroSimLayoutItem DensityGroup = new SyncroSimLayoutItem(DensityGroupName, "Density", true); GroupsDict.Add(GroupName, Group); GroupsList.Add(Group); GroupsDict.Add(DensityGroupName, DensityGroup); } AddChartGroupedAttributes( GroupsDict, attrGroupDataSheet, attrView, attrDataSheet, outputTableName, attributeTypeColumnName, skipTimestepZero); foreach (SyncroSimLayoutItem g in GroupsList) { if (g.Items.Count > 0) { string DensityGroupName = DENSITY_GROUP_NAME + g.Name; g.Items.Add(GroupsDict[DensityGroupName]); items.Add(g); } } }
private static void AddChartExternalVariables(SyncroSimLayoutItemCollection items, Project project) { DataSheet ds = project.GetDataSheet(Strings.CORESTIME_EXTERNAL_VAR_TYPE_DATASHEET_NAME); foreach (DataRow dr in ds.GetData().Rows) { int Id = Convert.ToInt32(dr[ds.ValueMember], CultureInfo.InvariantCulture); string Name = Convert.ToString(dr[ds.DisplayMember], CultureInfo.InvariantCulture); string VarName = string.Format(CultureInfo.InvariantCulture, "stsim_ExternalVariable-{0}", Id); SyncroSimLayoutItem Item = new SyncroSimLayoutItem(VarName, Name, false); Item.Properties.Add(new MetaDataProperty("dataSheet", Strings.OUTPUT_EXTERNAL_VARIABLE_VALUE_DATASHEET_NAME)); Item.Properties.Add(new MetaDataProperty("column", Strings.OUTPUT_EXTERNAL_VARIABLE_VALUE_VALUE_COLUMN_NAME)); Item.Properties.Add(new MetaDataProperty("defaultValue", "0.0")); items.Add(Item); } }
private static void AddChartGroupedAttributes( Dictionary <string, SyncroSimLayoutItem> groupsDict, DataSheet groupsDataSheet, DataView attrsView, DataSheet attrsDataSheet, string outputDataSheetName, string outputColumnName, bool skipTimestepZero) { //The density groups have already been created and added to the groups. Howver, we want the //attributes themselves to appear before this group so we must insert them in reverse order. for (int i = attrsView.Count - 1; i >= 0; i--) { DataRowView drv = attrsView[i]; if (drv.Row[Strings.DATASHEET_ATTRIBUTE_GROUP_ID_COLUMN_NAME] != DBNull.Value) { int GroupId = Convert.ToInt32(drv.Row[Strings.DATASHEET_ATTRIBUTE_GROUP_ID_COLUMN_NAME], CultureInfo.InvariantCulture); string GroupName = groupsDataSheet.ValidationTable.GetDisplayName(GroupId); int AttrId = Convert.ToInt32(drv.Row[attrsDataSheet.ValueMember], CultureInfo.InvariantCulture); SyncroSimLayoutItem MainGroup = groupsDict[GroupName]; SyncroSimLayoutItem DensityGroup = groupsDict[DENSITY_GROUP_NAME + GroupName]; string Units = DataTableUtilities.GetDataStr(drv.Row, Strings.DATASHEET_STATE_ATTRIBUTE_TYPE_UNITS_COLUMN_NAME); //Normal Attribute //---------------- string AttrNameNormal = string.Format(CultureInfo.InvariantCulture, "stsim_AttrNormal-{0}", AttrId); string DisplayNameNormal = Convert.ToString(drv.Row[attrsDataSheet.ValidationTable.DisplayMember], CultureInfo.InvariantCulture); if (Units != null) { DisplayNameNormal = string.Format(CultureInfo.InvariantCulture, "{0} ({1})", DisplayNameNormal, Units); } SyncroSimLayoutItem ItemNormal = new SyncroSimLayoutItem(AttrNameNormal, DisplayNameNormal, false); ItemNormal.Properties.Add(new MetaDataProperty("dataSheet", outputDataSheetName)); ItemNormal.Properties.Add(new MetaDataProperty("column", outputColumnName)); ItemNormal.Properties.Add(new MetaDataProperty("prefixFolderName", "False")); ItemNormal.Properties.Add(new MetaDataProperty("customTitle", GroupName + ": " + DisplayNameNormal)); ItemNormal.Properties.Add(new MetaDataProperty("defaultValue", "0.0")); if (skipTimestepZero) { ItemNormal.Properties.Add(new MetaDataProperty("skipTimestepZero", "True")); } MainGroup.Items.Insert(0, ItemNormal); //Density Attribute //----------------- string AttrNameDensity = string.Format(CultureInfo.InvariantCulture, "stsim_AttrDensity-{0}", AttrId); string DisplayNameDensity = Convert.ToString(drv.Row[attrsDataSheet.ValidationTable.DisplayMember], CultureInfo.InvariantCulture); if (Units != null) { DisplayNameDensity = string.Format(CultureInfo.InvariantCulture, "{0} ({1})", DisplayNameDensity, Units); } SyncroSimLayoutItem ItemDensity = new SyncroSimLayoutItem(AttrNameDensity, DisplayNameDensity, false); ItemDensity.Properties.Add(new MetaDataProperty("dataSheet", outputDataSheetName)); ItemDensity.Properties.Add(new MetaDataProperty("column", outputColumnName)); ItemDensity.Properties.Add(new MetaDataProperty("prefixFolderName", "False")); ItemDensity.Properties.Add(new MetaDataProperty("customTitle", GroupName + " (Density): " + DisplayNameNormal)); ItemDensity.Properties.Add(new MetaDataProperty("defaultValue", "0.0")); if (skipTimestepZero) { ItemDensity.Properties.Add(new MetaDataProperty("skipTimestepZero", "True")); } DensityGroup.Items.Insert(0, ItemDensity); } } }
private static void AddChartNonGroupedAttributes( SyncroSimLayoutItemCollection items, DataView attrsView, DataSheet attrsDataSheet, string outputDataSheetName, string outputColumnName, bool skipTimestepZero, SyncroSimLayoutItem densityGroup) { foreach (DataRowView drv in attrsView) { if (drv.Row[Strings.DATASHEET_ATTRIBUTE_GROUP_ID_COLUMN_NAME] == DBNull.Value) { int AttrId = Convert.ToInt32(drv.Row[attrsDataSheet.ValueMember], CultureInfo.InvariantCulture); string Units = DataTableUtilities.GetDataStr(drv.Row, Strings.DATASHEET_STATE_ATTRIBUTE_TYPE_UNITS_COLUMN_NAME); //Normal Attribute //---------------- string AttrNameNormal = string.Format(CultureInfo.InvariantCulture, "stsim_AttrNormal-{0}", AttrId); string DisplayNameNormal = Convert.ToString(drv.Row[attrsDataSheet.ValidationTable.DisplayMember], CultureInfo.InvariantCulture); if (Units != null) { DisplayNameNormal = string.Format(CultureInfo.InvariantCulture, "{0} ({1})", DisplayNameNormal, Units); } SyncroSimLayoutItem ItemNormal = new SyncroSimLayoutItem(AttrNameNormal, DisplayNameNormal, false); ItemNormal.Properties.Add(new MetaDataProperty("dataSheet", outputDataSheetName)); ItemNormal.Properties.Add(new MetaDataProperty("column", outputColumnName)); ItemNormal.Properties.Add(new MetaDataProperty("prefixFolderName", "False")); ItemNormal.Properties.Add(new MetaDataProperty("customTitle", DisplayNameNormal)); ItemNormal.Properties.Add(new MetaDataProperty("defaultValue", "0.0")); if (skipTimestepZero) { ItemNormal.Properties.Add(new MetaDataProperty("skipTimestepZero", "True")); } items.Add(ItemNormal); //Density Attribute //----------------- string AttrNameDensity = string.Format(CultureInfo.InvariantCulture, "stsim_AttrDensity-{0}", AttrId); string DisplayNameDensity = Convert.ToString(drv.Row[attrsDataSheet.ValidationTable.DisplayMember], CultureInfo.InvariantCulture); if (Units != null) { DisplayNameDensity = string.Format(CultureInfo.InvariantCulture, "{0} ({1})", DisplayNameDensity, Units); } SyncroSimLayoutItem ItemDensity = new SyncroSimLayoutItem(AttrNameDensity, DisplayNameDensity, false); ItemDensity.Properties.Add(new MetaDataProperty("dataSheet", outputDataSheetName)); ItemDensity.Properties.Add(new MetaDataProperty("column", outputColumnName)); ItemDensity.Properties.Add(new MetaDataProperty("prefixFolderName", "False")); ItemDensity.Properties.Add(new MetaDataProperty("customTitle", "(Density): " + DisplayNameNormal)); ItemDensity.Properties.Add(new MetaDataProperty("defaultValue", "0.0")); if (skipTimestepZero) { ItemDensity.Properties.Add(new MetaDataProperty("skipTimestepZero", "True")); } densityGroup.Items.Add(ItemDensity); } } }
public override void RefreshCriteria(SyncroSimLayout layout, Project project) { using (DataStore store = project.Library.CreateDataStore()) { SyncroSimLayoutItem StateClassGroup = new SyncroSimLayoutItem("stsim_StateClassVariableGroup", "State Classes", true); SyncroSimLayoutItem TransitionGroup = new SyncroSimLayoutItem("stsim_TransitionVariableGroup", "Transitions", true); SyncroSimLayoutItem TSTGroup = new SyncroSimLayoutItem("stsim_TSTGroup", "Time-Since-Transition", true); SyncroSimLayoutItem StateAttributeGroup = new SyncroSimLayoutItem("stsim_StateAttributeVariableGroup", "State Attributes", true); SyncroSimLayoutItem TransitionAttributeGroup = new SyncroSimLayoutItem("stsim_TransitionAttributeVariableGroup", "Transition Attributes", true); SyncroSimLayoutItem ExternalVariableGroup = new SyncroSimLayoutItem("stsim_ExternalVariableGroup", "External Variables", true); DataSheet AttrGroupDataSheet = project.GetDataSheet(Strings.DATASHEET_ATTRIBUTE_GROUP_NAME); DataView AttrGroupView = CreateChartAttributeGroupsView(project, store); DataSheet StateAttrDataSheet = project.GetDataSheet(Strings.DATASHEET_STATE_ATTRIBUTE_TYPE_NAME); DataView StateAttrDataView = new DataView(StateAttrDataSheet.GetData(store), null, StateAttrDataSheet.ValidationTable.DisplayMember, DataViewRowState.CurrentRows); DataSheet TransitionAttrDataSheet = project.GetDataSheet(Strings.DATASHEET_TRANSITION_ATTRIBUTE_TYPE_NAME); DataView TransitionAttrDataView = new DataView(TransitionAttrDataSheet.GetData(store), null, TransitionAttrDataSheet.ValidationTable.DisplayMember, DataViewRowState.CurrentRows); StateClassGroup.Properties.Add(new MetaDataProperty("dataSheet", "stsim_OutputStratumState")); StateClassGroup.Properties.Add(new MetaDataProperty("filter", "StratumID|SecondaryStratumID|TertiaryStratumID|StateClassID|StateLabelXID|StateLabelYID|AgeClass")); TransitionGroup.Properties.Add(new MetaDataProperty("dataSheet", "stsim_OutputStratumTransition")); TransitionGroup.Properties.Add(new MetaDataProperty("filter", "StratumID|SecondaryStratumID|TertiaryStratumID|TransitionGroupID|AgeClass|SizeClassID")); TSTGroup.Properties.Add(new MetaDataProperty("dataSheet", "stsim_OutputTST")); TSTGroup.Properties.Add(new MetaDataProperty("filter", "StratumID|SecondaryStratumID|TertiaryStratumID|TransitionGroupID|TSTClass")); StateAttributeGroup.Properties.Add(new MetaDataProperty("dataSheet", "stsim_OutputStateAttribute")); StateAttributeGroup.Properties.Add(new MetaDataProperty("filter", "StratumID|SecondaryStratumID|TertiaryStratumID|AgeClass")); TransitionAttributeGroup.Properties.Add(new MetaDataProperty("dataSheet", "stsim_OutputTransitionAttribute")); TransitionAttributeGroup.Properties.Add(new MetaDataProperty("filter", "StratumID|SecondaryStratumID|TertiaryStratumID|AgeClass")); RefreshChartAgeClassValidationTable(Strings.DATASHEET_OUTPUT_STRATUM_STATE_NAME, project); RefreshChartAgeClassValidationTable(Strings.DATASHEET_OUTPUT_STRATUM_TRANSITION_NAME, project); RefreshChartAgeClassValidationTable(Strings.DATASHEET_OUTPUT_STATE_ATTRIBUTE_NAME, project); RefreshChartAgeClassValidationTable(Strings.DATASHEET_OUTPUT_TRANSITION_ATTRIBUTE_NAME, project); RefreshChartTSTClassValidationTable(Strings.DATASHEET_OUTPUT_TST_NAME, project); AddChartStateClassVariables(StateClassGroup.Items, project); AddChartTransitionVariables(TransitionGroup.Items, project); AddChartTSTVariables(TSTGroup.Items, project); AddChartExternalVariables(ExternalVariableGroup.Items, project); AddChartAttributeVariables( StateAttributeGroup.Items, AttrGroupView, AttrGroupDataSheet, StateAttrDataView, StateAttrDataSheet, Strings.DATASHEET_OUTPUT_STATE_ATTRIBUTE_NAME, Strings.DATASHEET_STATE_ATTRIBUTE_TYPE_ID_COLUMN_NAME, false); AddChartAttributeVariables(TransitionAttributeGroup.Items, AttrGroupView, AttrGroupDataSheet, TransitionAttrDataView, TransitionAttrDataSheet, Strings.DATASHEET_OUTPUT_TRANSITION_ATTRIBUTE_NAME, Strings.DATASHEET_TRANSITION_ATTRIBUTE_TYPE_ID_COLUMN_NAME, true); layout.Items.Add(StateClassGroup); layout.Items.Add(TransitionGroup); layout.Items.Add(TSTGroup); if (StateAttributeGroup.Items.Count > 0) { layout.Items.Add(StateAttributeGroup); } if (TransitionAttributeGroup.Items.Count > 0) { layout.Items.Add(TransitionAttributeGroup); } if (ExternalVariableGroup.Items.Count > 0) { layout.Items.Add(ExternalVariableGroup); } } }