/*
Copyright (c) 2019 PTC Inc. and/or Its Subsidiary Companies. All Rights Reserved.
*/
#include <ProToolkit.h>
#include <ProMenuBar.h>
#include <ProUtil.h>
#include <ProMessage.h>
#include <ProBrowser.h>
#include <ProWTUtils.h>
#include <ProWorkspace.h>
#include <ProCore.h>
#include <PTWCServer.h>
ProFileName message_file;
#define POPULATE_MODE_FLAG "populate"
#define REGFILE_FLAG "regfile"
uiCmdAccessState PTTestAccessDefault ()
{
return ACCESS_AVAILABLE;
}
/*====================================================================*\
FUNCTION : user_initialize()
PURPOSE : Application initialization
\*====================================================================*/
int user_initialize(int argc, char* argv[])
{
ProBoolean populateMode = PRO_B_FALSE;
int i;
uiCmdCmdId cmd_id;
char initFile [PRO_FILE_NAME_SIZE];
PT_TEST_LOG_INIT
/*--------------------------------------------------------------------*\
Set the default initialization file name
\*--------------------------------------------------------------------*/
strcpy (initFile, "pt_wc_server_init.dat");
/*--------------------------------------------------------------------*\
Parse command line
\*--------------------------------------------------------------------*/
if (argc > 1)
{
for (i = 1; i < argc; i++)
{
char* flagString;
char* flagInitFile = NULL;
int loc;
/*--------------------------------------------------------------------*\
Skip the '+' used to signal this argument to Pro/TOOLKIT
\*--------------------------------------------------------------------*/
flagString = argv [i] + 1;
if (strcmp (flagString, POPULATE_MODE_FLAG)== 0)
{
populateMode = PRO_B_TRUE;
}
if (strncmp (flagString, REGFILE_FLAG, strlen (REGFILE_FLAG)) == 0)
{
flagInitFile = strchr (flagString, '=');
strcpy (initFile, flagInitFile + 1);
}
}
}
/*--------------------------------------------------------------------*\
Run populate mode, this method will exit Pro/E after its complete
\*--------------------------------------------------------------------*/
if (populateMode)
{
PTWCUtilSetInteractive (PRO_B_FALSE);
return (PTWCPopulateServer (initFile));
}
ProStringToWstring (message_file_init, "pt_wc_server.txt" );
/*---------------------------------------------------------------------*\
Add the application main menu
\*---------------------------------------------------------------------*/
status = ProMenubarMenuAdd ("PTWCServer", "PTWCServerLabel", "Info",
PRO_B_TRUE, message_file_init );
PT_TEST_LOG_SUCC ("ProMenubarMenuAdd()");
/*---------------------------------------------------------------------*\
Add the button for creating and checking in the BOM file
\*---------------------------------------------------------------------*/
status = ProCmdActionAdd("PTWCServer.CreateBOM",
(uiCmdCmdActFn)PTWCCreateOrUpdateDXF,
uiProe2ndImmediate, PTWCAccessCreateOrUpdateDXF,
PRO_B_TRUE, PRO_B_TRUE, &cmd_id);
PT_TEST_LOG_SUCC ("ProCmdActionAdd()");
status = ProMenubarmenuPushbuttonAdd(
"PTWCServer", "PTWCCreateUpdateDXF",
"PTWCCreateUpdateDXF-Label",
"PTWCCreateUpdateDXF-Help",
NULL, PRO_B_TRUE, cmd_id, message_file_init);
PT_TEST_LOG_SUCC ("ProMenubarmenuPushbuttonAdd()");
/*---------------------------------------------------------------------*\
Add the button for creating and checking in the ProductView OL files as
secondary content
\*---------------------------------------------------------------------*/
status = ProCmdActionAdd("PTWCServer.PartToPView",
(uiCmdCmdActFn)PTWCPartsToProductView,
uiProe2ndImmediate, PTWCAccessPartToPView,
PRO_B_TRUE, PRO_B_TRUE, &cmd_id);
PT_TEST_LOG_SUCC ("ProCmdActionAdd()");
status = ProMenubarmenuPushbuttonAdd(
"PTWCServer", "PTWCPartToPView",
"PTWCPartToPView-Label",
"PTWCPartToPView-Help",
NULL, PRO_B_TRUE, cmd_id, message_file_init);
PT_TEST_LOG_SUCC ("ProMenubarmenuPushbuttonAdd()");
/*---------------------------------------------------------------------*\
Add the button for automatic addition of a family table instance.
\*---------------------------------------------------------------------*/
status = ProCmdActionAdd("PTWCServer.AddInstance",
(uiCmdCmdActFn)PTWCAddInstance,
uiProe2ndImmediate, PTWCAccessAddInstance,
PRO_B_TRUE, PRO_B_TRUE, &cmd_id);
PT_TEST_LOG_SUCC ("ProCmdActionAdd()");
status = ProMenubarmenuPushbuttonAdd(
"PTWCServer", "PTWCAddInstance",
"PTWCAddInstance-Label",
"PTWCAddInstance-Help",
NULL, PRO_B_TRUE, cmd_id, message_file_init);
PT_TEST_LOG_SUCC ("ProMenubarmenuPushbuttonAdd()");
return(0);
}
void user_terminate()
{
PT_TEST_LOG_CLOSE
}