public void FiguresEditor() { _ps = null; _ps = new PaletteSet("Figures Editor"); _ps.Size = new Size(400, 600); _ps.DockEnabled = (DockSides)((int)DockSides.Left + (int)DockSides.Right); PluginWindow window = new PluginWindow(); _ps.AddVisual("TestPlugin", window); _ps.KeepFocus = true; _ps.Visible = true; }
public PaletteSet ShowPaletteSet(PaletteSetConfig config) { var ps = new PaletteSet(config.Name); ps.Text = config.Name; ps.Style = PaletteSetStyles.Snappable | PaletteSetStyles.Notify | PaletteSetStyles.SingleColDock | PaletteSetStyles.ShowCloseButton | PaletteSetStyles.ShowPropertiesMenu | PaletteSetStyles.ShowAutoHideButton; ps.Visible = true; if (config.IsDock) { ps.DockEnabled = DockSides.Left; ps.Dock = DockSides.Left; } else { ps.Dock = DockSides.None; ps.DockEnabled = DockSides.None; } foreach (var pconfig in config.PaletteConfigs) { ps.AddVisual(pconfig.Key, pconfig.Value); } return(ps); }
public static void Test() { PaletteSet ps = new PaletteSet("Ribbon Custom") { //ps.Add("Ribbon", ribbon_Custom); // set some style parameters Style = PaletteSetStyles.NameEditable | PaletteSetStyles.ShowPropertiesMenu | PaletteSetStyles.ShowAutoHideButton | PaletteSetStyles.ShowCloseButton | PaletteSetStyles.Snappable, Visible = true, Dock = DockSides.None }; System.Drawing.Point startPos = new System.Drawing.Point(50, 50); ps.SetLocation(startPos); ps.SetSize(new System.Drawing.Size(800, 145)); ps.TitleBarLocation = PaletteSetTitleBarLocation.Left; Ribbon_ViewModel viewModel = new Ribbon_ViewModel(); ps.AddVisual("Ribbon", viewModel.InitRibbonView()); }
public void showAttrsEditor() { if (attrPaletteSet == null) { attrPaletteSet = new PaletteSet("属性面板", new System.Guid("D61D0875-A507-4b73-8B5F-9221FF392200")); baseAttrEditor = new BaseAttrEditor(); attrPaletteSet.AddVisual("基础属性", baseAttrEditor); buildingAttrEditor = new BuildingAttrEditor(); attrPaletteSet.AddVisual("楼房属性", buildingAttrEditor); heatProducerAttrEditor = new HeatProducerAttrEditor(); attrPaletteSet.AddVisual("热源属性", heatProducerAttrEditor); substationAttrEditor = new SubstationAttrEditor(); attrPaletteSet.AddVisual("热力站属性", substationAttrEditor); attrPaletteSet.SetSize(new System.Drawing.Size(120, 350)); solutionAttrPanel = new SolutionAttrPanel(); attrPaletteSet.AddVisual("方案属性", solutionAttrPanel); solutionAttrComparePanel = new SolutionAttrComparePanel(); attrPaletteSet.AddVisual("方案对比", solutionAttrComparePanel); } attrPaletteSet.Visible = true; attrPaletteSet.Activate(0); attrPaletteSet.PaletteActivated += new PaletteActivatedEventHandler(paletteActive); }
public void Initialize() { panels.AddVisual("面板一", myPanel1); panels.AddVisual("面板二", myPanel2); }
static Commands() { var menuPanel = new MenuPanel(new MenuPanelView()); MenuPanelPalette.AddVisual("综合设计", menuPanel); }
public CADWindows.Palette AddVisual(string name, Visual visual) { Collection.Add(name, visual); return(paletteSet.AddVisual(name, visual)); }
private static void SetLayersByList(Database db, GeologyHatchLayersViewModel viewModel, SelectionSet acSSet, Editor ed) { Dictionary <string, List <ObjectId> > hatchTypesLookup = new Dictionary <string, List <ObjectId> >(); List <ObjectId> layerList = new List <ObjectId>(); PaletteSet ps = null; SelectLayerViewModel paletteViewModel = null; SelectLayerView paletteView = null; List <LayerTableRecord> ltrList = null; using (Transaction tr = db.TransactionManager.StartTransaction()) { //Создать слои согласно списку из экселя (если их еще нет) List <string> layerNames = viewModel.LayerNames; short colorIndex = 1; foreach (string ln in layerNames) { layerList.Add(Utils.CreateLayerIfNotExists(ln, db, tr, color: Color.FromColorIndex(ColorMethod.ByAci, colorIndex), lineWeight: LineWeight.LineWeight030)); colorIndex = Convert.ToByte((colorIndex + 1) % 255); if (colorIndex == 0) { colorIndex = 1; } } ltrList = layerList.Select(id => (LayerTableRecord)tr .GetObject(id, OpenMode.ForRead)).ToList(); //Разбить все штриховки по группам в соответствии с их свойствами foreach (ObjectId hatchId in acSSet.GetObjectIds()) { Hatch hatch = (Hatch)tr.GetObject(hatchId, OpenMode.ForWrite); string key = GetHatchTypeKey(hatch); List <ObjectId> currTypeList = null; hatchTypesLookup.TryGetValue(key, out currTypeList); if (currTypeList == null) { currTypeList = new List <ObjectId>(); hatchTypesLookup.Add(key, currTypeList); } currTypeList.Add(hatchId); } tr.Commit(); } if (hatchTypesLookup.Values.Count > 0) { ps = new PaletteSet("Выбор слоя"); ps.Style = PaletteSetStyles.ShowPropertiesMenu | PaletteSetStyles.ShowCloseButton; paletteViewModel = new SelectLayerViewModel(ltrList, ps); paletteView = new SelectLayerView(); paletteView.DataContext = paletteViewModel; ps.AddVisual("SelectLayerPaletteControl", paletteView); ps.DockEnabled = DockSides.Left; ps.Visible = false; //последовательно подсвечивать каждую группу (при этом зумировать камеру, чтобы было их видно) //Открывать панель со списком геологических элементов, полученным из экселя //и ожидать когда пользователь выберет в этом списке нужный элемент //присвоить выбранным штриховкам выбранный слой foreach (List <ObjectId> hatchIdsGroup in hatchTypesLookup.Values) { using (Transaction tr = db.TransactionManager.StartTransaction()) { List <Hatch> hatches = hatchIdsGroup .Select(id => (Hatch)tr.GetObject(id, OpenMode.ForWrite)).ToList(); try { Utils.Highlight(hatches, true); //зумирование на первой штриховке из списка Hatch sampleHatch = hatches.First(h => h.Bounds != null); Utils.ZoomWin(ed, sampleHatch.Bounds.Value.MinPoint, sampleHatch.Bounds.Value.MaxPoint); //Открыть панель и дать выбрать один из слоев ps.Visible = true; ps.Size = new System.Drawing.Size(420, 350); ps.Dock = DockSides.Left; bool trueCancel = false;//Dock ВЫЗЫВАЕТ ОТМЕНУ GetKeywords, поэтому первый раз отмена не завершает команду PromptResult pr = null; const string kwAcceptLayer = "ПРИнятьСлой"; const string kwSkip = "ПРОпустить"; const string kwErase = "УдалитьОбъекты"; do { PromptKeywordOptions pko = new PromptKeywordOptions("\nВыберите нужный слой"); pko.Keywords.Add(kwAcceptLayer); pko.Keywords.Add(kwSkip); pko.Keywords.Add(kwErase); pko.AllowNone = true; pr = ed.GetKeywords(pko); if (pr.Status == PromptStatus.Cancel) { if (trueCancel) { return; } trueCancel = true; } } while (paletteViewModel.SelectedLayer == null && !(pr.StringResult == kwSkip || pr.StringResult == kwErase)); ps.Visible = false; switch (pr.StringResult) { case null: case "": //пустой ввод - то же что и принять case kwAcceptLayer: ObjectId selectedLayerId = (paletteViewModel.SelectedLayer as LayerTableRecord).Id; paletteViewModel.SelectedLayer = null; foreach (Hatch hatch in hatches) { hatch.LayerId = selectedLayerId; hatch.ColorIndex = 256; } break; case kwErase: foreach (Hatch hatch in hatches) { hatch.Erase(); } break; } } catch (System.Exception ex) { throw ex; } finally { Utils.Highlight(hatches, false); ps.Visible = false; } tr.Commit(); } } } }
public void GeologyTrueScalingProfile() { Document doc = Application.DocumentManager.MdiActiveDocument; if (doc == null) { return; } Database db = doc.Database; Editor ed = doc.Editor; //ДЛЯ КАЖДОЙ ТОЧКИ ПРОФИЛЯ ГЕОЛОГИИ ЗНАЧЕНИЕ ИМЕЕТ ТОЛЬКО ЗАГЛУБЛЕНИЕ ЭТОЙ ТОЧКИ ОТ ПОВЕРХНОСТИ ЗЕМЛИ!!!! //указать линию земли на продольном профиле (полилиния) //выбрать штриховки на продольном профиле //исходные масштабные коэффициенты (сколько метров в одной единице длины автокада): //- по горизонтали //- по вертикали //- по вертикали грунты //требуемые масштабные коэффициенты //- по горизонтали //- по вертикали try { if (ps == null) { ps = new PaletteSet("Перевод масштаба профиля геологии"); ps.Style = PaletteSetStyles.ShowPropertiesMenu //| PaletteSetStyles.ShowAutoHideButton | PaletteSetStyles.ShowCloseButton; view = new GeologyTrueScalingProfileView2(); ViewModel = new GeologyTrueScalingProfileViewModel(doc, ps); view.DataContext = ViewModel; ps.AddVisual("ConnectionPaletteControl", view); ps.DockEnabled = DockSides.Left; ps.Visible = true; ps.Size = new System.Drawing.Size(420, 350); ps.Dock = DockSides.Left; ps.StateChanged += PaletteSet_StateChanged;//снимать подсветку объектов про закрытии //панель жестко привязана к одному чертежу //если документ сменяется, то панель должна быть закрыта и удалена! Application.DocumentManager.DocumentToBeDeactivated += ClosePalette; Application.DocumentManager.DocumentToBeDestroyed += ClosePalette; } else { ps.Visible = true; } } catch (System.Exception ex) { ClosePalette(null, null); CommonException(ex, "Ошибка при переводе масштаба профиля геологии"); } }
public void RaiseNetworkTo3d() { Document doc = Application.DocumentManager.MdiActiveDocument; if (doc == null) { return; } Database db = doc.Database; Editor ed = doc.Editor; //указать план трассы (полилиния) //выбрать штриховки на продольном профиле //линейный масштабный коэффициент: //- по горизонтали //- по вертикали //задать базовую отметку для профиля try { if (ps == null) { ps = new PaletteSet("Построение 3d профиля геологии"); ps.Style = PaletteSetStyles.ShowPropertiesMenu | PaletteSetStyles.ShowCloseButton; view = new GeologyHatch3dView(); viewModel = new GeologyHatch3dViewModel(doc, ps); if (GeologyConvertationCommand.ViewModel != null) { viewModel.HorScaling = GeologyConvertationCommand.ViewModel.EndHorScaling; viewModel.VertScaling = GeologyConvertationCommand.ViewModel.EndVertScaling; } view.DataContext = viewModel; ps.AddVisual("ConnectionPaletteControl", view); ps.DockEnabled = DockSides.Left; ps.Visible = true; ps.Size = new System.Drawing.Size(420, 350); ps.Dock = DockSides.Left; ps.StateChanged += PaletteSet_StateChanged;//снимать подсветку объектов про закрытии //панель жестко привязана к одному чертежу //если документ сменяется, то панель должна быть закрыта и удалена! Application.DocumentManager.DocumentToBeDeactivated += ClosePalette; Application.DocumentManager.DocumentToBeDestroyed += ClosePalette; } else { ps.Visible = true; } } catch (System.Exception ex) { ClosePalette(null, null); CommonException(ex, "Ошибка при создании 3d профиля геологии"); } }