using SolidWorks.Interop.sldworks;
|
using SolidWorks.Interop.swconst;
|
using SolidWorks.Interop.swpublished;
|
using System;
|
|
namespace PdmSw
|
{
|
public class UserPMPage
|
{
|
//Local Objects
|
IPropertyManagerPage2 swPropertyPage = null;
|
PMPHandler handler = null;
|
ISldWorks iSwApp = null;
|
SwAddin userAddin = null;
|
|
#region Property Manager Page Controls
|
//Groups
|
IPropertyManagerPageGroup group1;
|
IPropertyManagerPageGroup group2;
|
|
//Controls
|
IPropertyManagerPageTextbox textbox1;
|
IPropertyManagerPageCheckbox checkbox1;
|
IPropertyManagerPageOption option1;
|
IPropertyManagerPageOption option2;
|
IPropertyManagerPageOption option3;
|
IPropertyManagerPageListbox list1;
|
|
IPropertyManagerPageSelectionbox selection1;
|
IPropertyManagerPageNumberbox num1;
|
IPropertyManagerPageCombobox combo1;
|
|
//Control IDs
|
public const int group1ID = 0;
|
public const int group2ID = 1;
|
|
public const int textbox1ID = 2;
|
public const int checkbox1ID = 3;
|
public const int option1ID = 4;
|
public const int option2ID = 5;
|
public const int option3ID = 6;
|
public const int list1ID = 7;
|
|
public const int selection1ID = 8;
|
public const int num1ID = 9;
|
public const int combo1ID = 10;
|
#endregion
|
|
public UserPMPage(SwAddin addin)
|
{
|
userAddin = addin;
|
if (userAddin != null)
|
{
|
iSwApp = (ISldWorks)userAddin.SwApp;
|
CreatePropertyManagerPage();
|
}
|
else
|
{
|
System.Windows.Forms.MessageBox.Show("SwAddin not set.");
|
}
|
}
|
|
|
protected void CreatePropertyManagerPage()
|
{
|
int errors = -1;
|
int options = (int)swPropertyManagerPageOptions_e.swPropertyManagerOptions_OkayButton |
|
(int)swPropertyManagerPageOptions_e.swPropertyManagerOptions_CancelButton;
|
|
handler = new PMPHandler(userAddin);
|
swPropertyPage = (IPropertyManagerPage2)iSwApp.CreatePropertyManagerPage("Sample PMP", options, handler, ref errors);
|
if (swPropertyPage != null && errors == (int)swPropertyManagerPageStatus_e.swPropertyManagerPage_Okay)
|
{
|
try
|
{
|
AddControls();
|
}
|
catch (Exception e)
|
{
|
iSwApp.SendMsgToUser2(e.Message, 0, 0);
|
}
|
}
|
}
|
|
|
//Controls are displayed on the page top to bottom in the order
|
//in which they are added to the object.
|
protected void AddControls()
|
{
|
short controlType = -1;
|
short align = -1;
|
int options = -1;
|
|
|
//Add the groups
|
options = (int)swAddGroupBoxOptions_e.swGroupBoxOptions_Expanded |
|
(int)swAddGroupBoxOptions_e.swGroupBoxOptions_Visible;
|
|
group1 = (IPropertyManagerPageGroup)swPropertyPage.AddGroupBox(group1ID, "Sample Group 1", options);
|
|
options = (int)swAddGroupBoxOptions_e.swGroupBoxOptions_Checkbox |
|
(int)swAddGroupBoxOptions_e.swGroupBoxOptions_Visible;
|
|
group2 = (IPropertyManagerPageGroup)swPropertyPage.AddGroupBox(group2ID, "Sample Group 2", options);
|
|
//Add the controls to group1
|
|
//textbox1
|
controlType = (int)swPropertyManagerPageControlType_e.swControlType_Textbox;
|
align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge;
|
options = (int)swAddControlOptions_e.swControlOptions_Enabled |
|
(int)swAddControlOptions_e.swControlOptions_Visible;
|
|
textbox1 = (IPropertyManagerPageTextbox)group1.AddControl(textbox1ID, controlType, "Type Here", align, options, "This is an example textbox");
|
|
//checkbox1
|
controlType = (int)swPropertyManagerPageControlType_e.swControlType_Checkbox;
|
align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge;
|
options = (int)swAddControlOptions_e.swControlOptions_Enabled |
|
(int)swAddControlOptions_e.swControlOptions_Visible;
|
|
checkbox1 = (IPropertyManagerPageCheckbox)group1.AddControl(checkbox1ID, controlType, "Sample Checkbox", align, options, "This is a sample checkbox");
|
|
//option1
|
controlType = (int)swPropertyManagerPageControlType_e.swControlType_Option;
|
align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge;
|
options = (int)swAddControlOptions_e.swControlOptions_Enabled |
|
(int)swAddControlOptions_e.swControlOptions_Visible;
|
|
option1 = (IPropertyManagerPageOption)group1.AddControl(option1ID, controlType, "Option1", align, options, "Radio Buttons");
|
|
//option2
|
controlType = (int)swPropertyManagerPageControlType_e.swControlType_Option;
|
align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge;
|
options = (int)swAddControlOptions_e.swControlOptions_Enabled |
|
(int)swAddControlOptions_e.swControlOptions_Visible;
|
|
option2 = (IPropertyManagerPageOption)group1.AddControl(option2ID, controlType, "Option2", align, options, "Radio Buttons");
|
|
//option3
|
controlType = (int)swPropertyManagerPageControlType_e.swControlType_Option;
|
align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge;
|
options = (int)swAddControlOptions_e.swControlOptions_Enabled |
|
(int)swAddControlOptions_e.swControlOptions_Visible;
|
|
option3 = (IPropertyManagerPageOption)group1.AddControl(option3ID, controlType, "Option3", align, options, "Radio Buttons");
|
|
//list1
|
controlType = (int)swPropertyManagerPageControlType_e.swControlType_Listbox;
|
align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge;
|
options = (int)swAddControlOptions_e.swControlOptions_Enabled |
|
(int)swAddControlOptions_e.swControlOptions_Visible;
|
|
list1 = (IPropertyManagerPageListbox)group1.AddControl(list1ID, controlType, "Sample Listbox", align, options, "List of selectable items");
|
if (list1 != null)
|
{
|
string[] items = { "One Fish", "Two Fish", "Red Fish", "Blue Fish" };
|
list1.Height = 50;
|
list1.AddItems(items);
|
}
|
|
//Add controls to group2
|
//selection1
|
controlType = (int)swPropertyManagerPageControlType_e.swControlType_Selectionbox;
|
align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge;
|
options = (int)swAddControlOptions_e.swControlOptions_Enabled |
|
(int)swAddControlOptions_e.swControlOptions_Visible;
|
|
selection1 = (IPropertyManagerPageSelectionbox)group2.AddControl(selection1ID, controlType, "Sample Selection", align, options, "Displays features selected in main view");
|
if (selection1 != null)
|
{
|
int[] filter = { (int)swSelectType_e.swSelEDGES, (int)swSelectType_e.swSelVERTICES };
|
selection1.Height = 40;
|
selection1.SetSelectionFilters(filter);
|
}
|
|
//num1
|
controlType = (int)swPropertyManagerPageControlType_e.swControlType_Numberbox;
|
align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge;
|
options = (int)swAddControlOptions_e.swControlOptions_Enabled |
|
(int)swAddControlOptions_e.swControlOptions_Visible;
|
|
num1 = (IPropertyManagerPageNumberbox)group2.AddControl(num1ID, controlType, "Sample Numberbox", align, options, "Allows for numerical input");
|
if (num1 != null)
|
{
|
num1.Value = 50.0;
|
num1.SetRange((int)swNumberboxUnitType_e.swNumberBox_UnitlessDouble, 0.0, 100.0, 0.01, true);
|
}
|
|
//combo1
|
controlType = (int)swPropertyManagerPageControlType_e.swControlType_Combobox;
|
align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge;
|
options = (int)swAddControlOptions_e.swControlOptions_Enabled |
|
(int)swAddControlOptions_e.swControlOptions_Visible;
|
|
combo1 = (IPropertyManagerPageCombobox)group2.AddControl(combo1ID, controlType, "Sample Combobox", align, options, "Combo list");
|
if (combo1 != null)
|
{
|
string[] items = { "One Fish", "Two Fish", "Red Fish", "Blue Fish" };
|
combo1.AddItems(items);
|
combo1.Height = 50;
|
|
}
|
}
|
|
public void Show()
|
{
|
if (swPropertyPage != null)
|
{
|
swPropertyPage.Show();
|
}
|
}
|
}
|
}
|