프로젝트

일반

사용자정보

통계
| 개정판:

hytos / DTI_PID / APIDConverter / ConverterRibbonUI.cs @ af908f42

이력 | 보기 | 이력해설 | 다운로드 (4.72 KB)

1
using System;
2
using System.IO;
3
using System.Windows.Media;
4
using System.Windows.Media.Imaging;
5
using System.Collections.Generic;
6
using System.Linq;
7
using System.Text;
8
using System.Threading.Tasks;
9

    
10
using Autodesk.AutoCAD.ApplicationServices;
11
using Autodesk.AutoCAD.DatabaseServices;
12
using Autodesk.AutoCAD.EditorInput;
13
using Autodesk.AutoCAD.Geometry;
14
using Autodesk.AutoCAD.Interop;
15
using Autodesk.AutoCAD.Interop.Common;
16
using Autodesk.AutoCAD.Runtime;
17
using Autodesk.AutoCAD.Ribbon;
18
using Autodesk.Windows;
19
using Autodesk.Windows.ToolBars;
20
using AcadApp = Autodesk.AutoCAD.ApplicationServices.Application;
21

    
22
using AVEVA.PID.CustomizationUtility.Properties;
23
namespace AVEVA.PID.CustomizationUtility
24
{
25
    public class ConverterRibbonUI
26
    {
27
        public static void InitUI()
28
        {
29
            RibbonControl ribbon = ComponentManager.Ribbon;
30
            RibbonTab tab = ribbon.FindTab("APIDConverter");
31
            if (tab != null)
32
                ribbon.Tabs.Remove(tab);
33
            else
34
            {
35
                tab = new RibbonTab();
36
                tab.Title = "APID Converter";
37
                tab.Id = "APIDConverter";
38

    
39
                tab.Panels.Add(AddConverterPanel());
40
                tab.Panels.Add(AddMappingPanel());
41

    
42
                ribbon.Tabs.Insert(0, tab);
43
                ribbon.ActiveTab = tab;
44
            }
45
        }
46

    
47
        public static RibbonPanel AddConverterPanel()
48
        {
49
            RibbonButton rb;
50
            RibbonPanelSource rps = new RibbonPanelSource();
51
            rps.Title = "APID Converter";
52
            RibbonPanel rp = new RibbonPanel();
53
            rp.Source = rps;
54

    
55
            rb = new RibbonButton();
56
            rb.Name = "Converter";
57
            rb.ShowText = true;
58
            rb.Text = "Converter";
59
            rb.CommandHandler = new RibbonCommandHandler();
60
            rb.CommandParameter = "ConverterForm";
61
            rb.Orientation = System.Windows.Controls.Orientation.Vertical;
62
            rb.Size = RibbonItemSize.Large;
63
            rb.LargeImage = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(Resource.convert.GetHbitmap(), IntPtr.Zero, System.Windows.Int32Rect.Empty, System.Windows.Media.Imaging.BitmapSizeOptions.FromWidthAndHeight(32, 32));
64
            rps.Items.Add(rb);
65

    
66
            rb = new RibbonButton();
67
            rb.Name = "Project\nSetting";
68
            rb.ShowText = true;
69
            rb.Text = "Project\nSetting";
70
            rb.CommandHandler = new RibbonCommandHandler();
71
            rb.CommandParameter = "ProjectForm";
72
            rb.Orientation = System.Windows.Controls.Orientation.Vertical;
73
            rb.Size = RibbonItemSize.Large;
74
            rb.LargeImage = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(Resource.setting.GetHbitmap(), IntPtr.Zero, System.Windows.Int32Rect.Empty, System.Windows.Media.Imaging.BitmapSizeOptions.FromWidthAndHeight(32, 32));
75
            rps.Items.Add(rb);
76
            return rp;
77
        }
78

    
79
        public static RibbonPanel AddMappingPanel()
80
        {
81
            RibbonButton rb;
82
            RibbonPanelSource rps = new RibbonPanelSource();
83
            rps.Title = "Mapping";
84
            RibbonPanel rp = new RibbonPanel();
85
            rp.Source = rps;
86

    
87
            rb = new RibbonButton();
88
            rb.Name = "Mapping";
89
            rb.ShowText = true;
90
            rb.Text = "Mapping";
91
            rb.CommandHandler = new RibbonCommandHandler();
92
            rb.CommandParameter = "MappingForm";
93
            rb.Orientation = System.Windows.Controls.Orientation.Vertical;
94
            rb.Size = RibbonItemSize.Large;
95
            rb.LargeImage = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(Resource.mapping.GetHbitmap(), IntPtr.Zero, System.Windows.Int32Rect.Empty, System.Windows.Media.Imaging.BitmapSizeOptions.FromWidthAndHeight(32, 32));
96
            rps.Items.Add(rb);
97
            return rp;
98
        }
99

    
100

    
101
        public class RibbonCommandHandler : System.Windows.Input.ICommand
102
        {
103
            public event EventHandler CanExecuteChanged;
104

    
105
            public bool CanExecute(object parameter)
106
            {
107
                RibbonCommandItem btn = parameter as RibbonCommandItem;
108
                if (btn != null)
109
                    return true;
110
                else
111
                    return false;
112
            }
113

    
114
            public void Execute(object parameter)
115
            {
116
                RibbonCommandItem btn = parameter as RibbonCommandItem;
117

    
118
                if (btn != null)
119
                {
120
                    //execute an AutoCAD command, or your custom command defined by [CommandMethod]
121
                    Document dwg = Application.DocumentManager.MdiActiveDocument;
122
                    dwg.SendStringToExecute((string)btn.CommandParameter + " ", true, false, true);
123
                }
124
            }
125
        }
126

    
127
    }
128
}
클립보드 이미지 추가 (최대 크기: 500 MB)