//void SetMeasureUnits(params DateTimeMeasureUnit[] units) //{ // object prevUnit = String.IsNullOrEmpty(ChartDataMeasureUnit.SelectedItem.ToString()) ? null : Enum.Parse(typeof(DateTimeMeasureUnit), ChartDataMeasureUnit.SelectedItem.ToString()); // string prevItem = ""; // ChartDataMeasureUnit.Properties.Items.Clear(); // foreach (DateTimeMeasureUnit unit in units) // { // string unitName = Enum.GetName(typeof(DateTimeMeasureUnit), unit); // ChartDataMeasureUnit.Properties.Items.Add(unitName); // if (prevUnit != null && object.Equals(unit, (DateTimeMeasureUnit)prevUnit)) // prevItem = unitName; // } // if (!String.IsNullOrEmpty(prevItem)) // ChartDataMeasureUnit.SelectedItem = prevItem; // else // ChartDataMeasureUnit.SelectedIndex = 0; //} //private void cbChartDataMeasureUnit_SelectedIndexChanged(object sender, EventArgs e) //{ // XYDiagram diagram = null; // (XYDiagram)Chart.Diagram; // DateTimeMeasureUnit unit = (DateTimeMeasureUnit)Enum.Parse(typeof(DateTimeMeasureUnit), ChartDataMeasureUnit.SelectedItem.ToString()); // diagram.AxisX.DateTimeScaleOptions.GridAlignment = (DateTimeGridAlignment)unit; // diagram.AxisX.DateTimeScaleOptions.MeasureUnit = unit; // switch (unit) // { // case DateTimeMeasureUnit.Year: // diagram.AxisX.Label.TextPattern = "{A:yyyy}"; // break; // case DateTimeMeasureUnit.Quarter: // diagram.AxisX.Label.TextPattern = "{A:yyyy}"; // todo: fix // //diagram.AxisX.Label.DateTimeOptions.Format = DateTimeFormat.QuarterAndYear; // break; // case DateTimeMeasureUnit.Month: // diagram.AxisX.Label.TextPattern = "{A:yyyy}"; // todo: fix // //diagram.AxisX.DateTimeOptions.Format = DateTimeFormat.MonthAndYear; // break; // default: // break; // } //} /// <summary> /// Field grid cell clicked /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void FieldGrid_MouseClick(object sender, MouseEventArgs e) { GridHitInfo hi = FieldGridView.CalcHitInfo(e.Location); int ri = hi.RowHandle; if (ri < 0) { return; } PivotGridFieldMx f = Field = PivotGrid.Fields[ri] as PivotGridFieldMx; ResultsField rfld = f.ResultsField as ResultsField; AggregationDef agg = f.Aggregation; Mobius.Data.QueryColumn qc = rfld.QueryColumn; MetaColumn mc = qc.MetaColumn; GridColumn gc = hi.Column; if (gc == null) { return; } FieldGridRow = hi.RowHandle; FieldGridColumn = gc.AbsoluteIndex; GridViewInfo viewInfo = (GridViewInfo)FieldGridView.GetViewInfo(); GridCellInfo cellInfo = viewInfo.GetGridCellInfo(hi); Point menuLoc = new Point(cellInfo.Bounds.Left, cellInfo.Bounds.Bottom); menuLoc = FieldGrid.PointToScreen(menuLoc); if (gc.FieldName == "AggRoleCol") // show appropriate aggregation type menu { AggregationDefMenus.ShowRoleMenu(qc, f.Aggregation, menuLoc, AggregationRoleChanged); return; } else if (gc.FieldName == "AggTypeCol") // show appropriate aggregation type menu { AggregationDefMenus.ShowTypeMenu(qc, f.Aggregation, menuLoc, AggregationTypeChanged); return; } else if (gc.FieldName == "SourceColumnCol" || gc.FieldName == "SourceTableCol") { return; } }
private void GridView_MouseUp_Callback(object state) { ColumnMapMsx cm; QueryColumn qc; QnfEnum subColumn; DialogResult dr; string newSpotfireName; MouseEventArgs e = state as MouseEventArgs; if (e == null) return; Point p = new Point(e.X, e.Y); GridHitInfo gridHitInfo = FieldGridView.CalcHitInfo(p); GridViewInfo gridViewInfo = FieldGridView.GetViewInfo() as GridViewInfo; GridCellInfo gridCellInfo = gridViewInfo.GetGridCellInfo(gridHitInfo); int ri = gridHitInfo.RowHandle; if (ri < 0) return; GridColumn gc = gridHitInfo.Column; if (gc == null) return; int c = gc.AbsoluteIndex; if (SelectSingleColumn) // just do a simple single column selection { UpdateSelectSingleColumnData(ri); return; } DataRow dRow = FieldDataTable.Rows[ri]; //DataMap.ColumnMapList.Items[ri]; cm = dRow["ColumnMapMsxRefField"] as ColumnMapMsx; // get ColumnMap for current item if (cm == null) throw new Exception("Null ColumnMapMsxRefField"); //if (cm == null) qc = null; //else qc = cm.QueryColumn; qc = cm.QueryColumn; subColumn = cm.SubColumn; // Rename column if (gc == SpotfireColNameCol) { RenameColumn(ri); return; } // Commands checked below are only available if editing of the mapping is allowed if (!CanEditMapping) return; // Select which Mobius column maps to a Spotfire Column if (gc == MobiusTableNameCol || gc == MobiusColNameCol) // select Mobius column to match if defining mapping { string role = dRow["OriginalSpotfireColNameField"] as string; if (Lex.IsUndefined(role)) return; // can only assign cols with "roles" from the original template analysis string spotfireName = ""; FieldSelectorControl fieldSelector = new FieldSelectorControl(); fieldSelector.QueryColumn = qc; SelectColumnOptions flags = new SelectColumnOptions(); flags.ExcludeImages = true; flags.FirstTableKeyOnly = true; flags.SelectFromQueryOnly = true; flags.QnSubcolsToInclude = QnfEnum.Split | QnfEnum.Qualifier | QnfEnum.NumericValue | QnfEnum.NValue; // split QualifiedNumbers flags.IncludeNoneItem = true; flags.AllowedDataTypes = DataTableMapMsx.GetMetaColumnTypesCompatibleWithSpotfireColumn(cm.SpotfireColumn, allowCompoundId: (ri == 0)); p = FieldGrid.PointToScreen(p); if (CurrentMap.QueryTable != null) // select from single query table only dr = fieldSelector.SelectColumnFromQueryTable(CurrentMap.QueryTable, qc, flags, p.X, p.Y, out qc, out subColumn); else // select from any table in the query dr = fieldSelector.SelectColumnFromQuery(Query, qc, flags, p.X, p.Y, out qc, out subColumn); if (dr != DialogResult.OK) return; cm.QueryColumn = qc; // new query column mapped to if (qc != null) // assigning a new QueryColumn { dRow["MobiusTableNameField"] = qc.QueryTable.ActiveLabel; dRow["MobiusColNameField"] = qc.ActiveLabel; newSpotfireName = CurrentMap.AssignUniqueSpotfireColumnName(qc.ActiveLabel); dRow["SpotfireColNameField"] = newSpotfireName; // update grid cm.SpotfireColumnName = newSpotfireName; // store new name //if (Lex.Ne(cm.SpotfireColumnName, newSpotfireName)) // changing name? //{ // cm.NewSpotfireColumnName = newSpotfireName; // store new name //} cm.MobiusFileColumnName = qc.MetaTableDotMetaColumnName + ColumnMapParms.SpotfireExportExtraColNameSuffix; } else // set to none (e.g. null col) { dRow["MobiusTableNameField"] = ""; dRow["MobiusColNameField"] = ""; newSpotfireName = CurrentMap.AssignUniqueSpotfireColumnName("None"); dRow["SpotfireColNameField"] = newSpotfireName; // update grid cm.SpotfireColumnName = newSpotfireName; // update map //cm.NewSpotfireColumnName = newSpotfireName; // update map cm.MobiusFileColumnName = ""; // not mapped to a col } FieldGrid.RefreshDataSource(); SVM.RemapDataTable(CurrentMap); // update spotfire view accordingly UpdateFieldGridDataTable(); cm.NewSpotfireColumnName = ""; // clear new name used for rename (needed?) } return; }