&ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2
&ANALYZE-RESUME
&Scoped-define WINDOW-NAME wWin
{adecomm/appserv.i}
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS wWin 
/*------------------------------------------------------------------------

  File: 

  Description: from cntnrwin.w - ADM SmartWindow Template

  Input Parameters:
      <none>

  Output Parameters:
      <none>

  History: New V9 Version - January 15, 1998
          
------------------------------------------------------------------------*/
/*          This .W file was created with the Progress AB.              */
/*----------------------------------------------------------------------*/

/* Create an unnamed pool to store all the widgets created 
     by this procedure. This is a good default which assures
     that this procedure's triggers and internal procedures 
     will execute in this procedure's storage, and that proper
     cleanup will occur on deletion of the procedure. */

CREATE WIDGET-POOL.

/* ***************************  Definitions  ************************** */

/* Parameters Definitions ---                                           */

/* Local Variable Definitions ---                                       */
DEFINE VARIABLE VirtualUI AS COM-HANDLE NO-UNDO.

FUNCTION StartVirtualUI RETURNS LOGICAL:
    // Create VirtualUI instance:
    CREATE VALUE("VirtualUI.VirtualUI") VirtualUI NO-ERROR.
    
    IF ERROR-STATUS:ERROR = FALSE THEN DO:
        // To run in dev mode, under Progress Developer Studio, uncomment these lines:
        //VirtualUI:Enabled = TRUE.
        //VirtualUI:DevMode = TRUE.
        //VirtualUI:DevServer:Enabled = TRUE.
        
        // Start VirtualUI:
        VirtualUI:Start(30).
        
        // Enable events (declare handlers as "PROCEDURE VirtualUI.EVENT_NAME"):
        VirtualUI:ENABLE-EVENTS("VirtualUI").
        
        RETURN TRUE.
    END.
    ELSE
        RETURN FALSE.
END.

/* OnUploadEnd event handler*/
PROCEDURE VirtualUI.OnUploadEnd:
    DEFINE INPUT PARAMETER fileName AS CHARACTER.
    MESSAGE "Uploaded file:~n" + fileName VIEW-AS ALERT-BOX INFORMATION BUTTONS OK TITLE "UploadEnd".
END PROCEDURE.

StartVirtualUI().

{src/adm2/widgetprto.i}

/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME


&ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK 

/* ********************  Preprocessor Definitions  ******************** */

&Scoped-define PROCEDURE-TYPE SmartWindow
&Scoped-define DB-AWARE no

&Scoped-define ADM-CONTAINER WINDOW

&Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target,Filter-target,Filter-Source

/* Name of designated FRAME-NAME and/or first browse and/or first query */
&Scoped-define FRAME-NAME fMain

/* Standard List Definitions                                            */
&Scoped-Define ENABLED-OBJECTS TOGGLE-StdDialogs BUTTON-OpenFile ~
FILL-IN-UploadDir BUTTON-Upload BUTTON-Download 
&Scoped-Define DISPLAYED-OBJECTS TOGGLE-StdDialogs FILL-IN-UploadDir 

/* Custom List Definitions                                              */
/* List-1,List-2,List-3,List-4,List-5,List-6                            */

/* _UIB-PREPROCESSOR-BLOCK-END */
&ANALYZE-RESUME



/* ***********************  Control Definitions  ********************** */

/* Define the widget handle for the window                              */
DEFINE VAR wWin AS WIDGET-HANDLE NO-UNDO.

/* Definitions of the field level widgets                               */
DEFINE BUTTON BUTTON-Download 
     LABEL "Download File" 
     SIZE 20 BY 1.14.

DEFINE BUTTON BUTTON-OpenFile 
     LABEL "Open File" 
     SIZE 20 BY 1.14.

DEFINE BUTTON BUTTON-Upload 
     LABEL "Upload File" 
     SIZE 20 BY 1.14.

DEFINE VARIABLE FILL-IN-UploadDir AS CHARACTER FORMAT "X(256)":U 
     VIEW-AS FILL-IN 
     SIZE 60 BY 1 NO-UNDO.

DEFINE VARIABLE TOGGLE-StdDialogs AS LOGICAL INITIAL no 
     LABEL "Standard Dialogs" 
     VIEW-AS TOGGLE-BOX
     SIZE 27 BY .81 NO-UNDO.


/* ************************  Frame Definitions  *********************** */

DEFINE FRAME fMain
     TOGGLE-StdDialogs AT ROW 1.71 COL 4 WIDGET-ID 2
     BUTTON-OpenFile AT ROW 2.91 COL 4 WIDGET-ID 4
     FILL-IN-UploadDir AT ROW 6.81 COL 2.4 COLON-ALIGNED NO-LABEL WIDGET-ID 8
     BUTTON-Upload AT ROW 8.24 COL 4 WIDGET-ID 10
     BUTTON-Download AT ROW 11.48 COL 4 WIDGET-ID 12
     "Server directory for upload (leave empty to use default):" VIEW-AS TEXT
          SIZE 57 BY .62 AT ROW 6 COL 4 WIDGET-ID 6
    WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY 
         SIDE-LABELS NO-UNDERLINE THREE-D 
         AT COL 1 ROW 1
         SIZE 73.6 BY 15.1 WIDGET-ID 100.


/* *********************** Procedure Settings ************************ */

&ANALYZE-SUSPEND _PROCEDURE-SETTINGS
/* Settings for THIS-PROCEDURE
   Type: SmartWindow
   Allow: Basic,Browse,DB-Fields,Query,Smart,Window
   Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target,Filter-target,Filter-Source
   Other Settings: APPSERVER
 */
&ANALYZE-RESUME _END-PROCEDURE-SETTINGS

/* *************************  Create Window  ************************** */

&ANALYZE-SUSPEND _CREATE-WINDOW
IF SESSION:DISPLAY-TYPE = "GUI":U THEN
  CREATE WINDOW wWin ASSIGN
         HIDDEN             = YES
         TITLE              = "VirtualUI demo"
         HEIGHT             = 15.1
         WIDTH              = 73.6
         MAX-HEIGHT         = 28.81
         MAX-WIDTH          = 146.2
         VIRTUAL-HEIGHT     = 28.81
         VIRTUAL-WIDTH      = 146.2
         MAX-BUTTON         = no
         RESIZE             = no
         SCROLL-BARS        = no
         STATUS-AREA        = no
         BGCOLOR            = ?
         FGCOLOR            = ?
         THREE-D            = yes
         MESSAGE-AREA       = no
         SENSITIVE          = yes.
ELSE {&WINDOW-NAME} = CURRENT-WINDOW.
/* END WINDOW DEFINITION                                                */
&ANALYZE-RESUME

&ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB wWin 
/* ************************* Included-Libraries *********************** */

{src/adm2/containr.i}

/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME




/* ***********  Runtime Attributes and AppBuilder Settings  *********** */

&ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
/* SETTINGS FOR WINDOW wWin
  VISIBLE,,RUN-PERSISTENT                                               */
/* SETTINGS FOR FRAME fMain
   FRAME-NAME                                                           */
IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(wWin)
THEN wWin:HIDDEN = yes.

/* _RUN-TIME-ATTRIBUTES-END */
&ANALYZE-RESUME

 



/* ************************  Control Triggers  ************************ */

&Scoped-define SELF-NAME wWin
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL wWin wWin
ON END-ERROR OF wWin /* VirtualUI demo */
OR ENDKEY OF {&WINDOW-NAME} ANYWHERE DO:
  /* This case occurs when the user presses the "Esc" key.
     In a persistently run window, just ignore this.  If we did not, the
     application would exit. */
  IF THIS-PROCEDURE:PERSISTENT THEN RETURN NO-APPLY.
END.

/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME


&ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL wWin wWin
ON WINDOW-CLOSE OF wWin /* VirtualUI demo */
DO:
  /* This ADM code must be left here in order for the SmartWindow
     and its descendents to terminate properly on exit. */
  APPLY "CLOSE":U TO THIS-PROCEDURE.
  RETURN NO-APPLY.
END.

/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME


&Scoped-define SELF-NAME BUTTON-Download
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL BUTTON-Download wWin
ON LEFT-MOUSE-CLICK OF BUTTON-Download IN FRAME fMain /* Download File */
DO:
        // Save current StdDialogs setting:
        DEFINE VARIABLE oldStdDialogs AS LOGICAL NO-UNDO.
        oldStdDialogs = VirtualUI:StdDialogs.
        
        // Set StdDialogs to TRUE to select a file from Server:
        VirtualUI:StdDialogs = TRUE.
        
        // Call GET-FILE to select file to download:
        DEFINE VARIABLE fileName AS CHARACTER NO-UNDO.
        DEFINE VARIABLE OKpressed AS LOGICAL NO-UNDO INITIAL TRUE.
        SYSTEM-DIALOG GET-FILE fileName
            TITLE "Open file"
            MUST-EXIST
            USE-FILENAME
            UPDATE OKpressed.
        IF OKpressed = TRUE THEN
           // Download selected file:
           VirtualUI:DownloadFile(fileName, "", "").
        
        // Restore StdDialogs previous setting:
        VirtualUI:StdDialogs = oldStdDialogs.
END.

/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME


&Scoped-define SELF-NAME BUTTON-OpenFile
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL BUTTON-OpenFile wWin
ON LEFT-MOUSE-CLICK OF BUTTON-OpenFile IN FRAME fMain /* Open File */
DO:
    DEFINE VARIABLE fileName AS CHARACTER NO-UNDO.
    DEFINE VARIABLE OKpressed AS LOGICAL NO-UNDO INITIAL TRUE.
    SYSTEM-DIALOG GET-FILE fileName
        TITLE "Open file"
        MUST-EXIST
        USE-FILENAME
        UPDATE OKpressed.

    IF OKpressed = TRUE THEN
        MESSAGE fileName VIEW-AS ALERT-BOX INFORMATION BUTTONS OK TITLE "OpenDialog Filename".
END.

/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME


&Scoped-define SELF-NAME BUTTON-Upload
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL BUTTON-Upload wWin
ON LEFT-MOUSE-CLICK OF BUTTON-Upload IN FRAME fMain /* Upload File */
DO:
    VirtualUI:UploadFile(FILL-IN-UploadDir:SCREEN-VALUE).  
END.

/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME


&Scoped-define SELF-NAME TOGGLE-StdDialogs
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL TOGGLE-StdDialogs wWin
ON VALUE-CHANGED OF TOGGLE-StdDialogs IN FRAME fMain /* Standard Dialogs */
DO:
    VirtualUI:StdDialogs = TOGGLE-StdDialogs:CHECKED.
END.

/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME


&UNDEFINE SELF-NAME

&ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK wWin 


/* ***************************  Main Block  *************************** */

/* Include custom  Main Block code for SmartWindows. */
{src/adm2/windowmn.i}

/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME


/* **********************  Internal Procedures  *********************** */

&ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects wWin  _ADM-CREATE-OBJECTS
PROCEDURE adm-create-objects :
/*------------------------------------------------------------------------------
  Purpose:     Create handles for all SmartObjects used in this procedure.
               After SmartObjects are initialized, then SmartLinks are added.
  Parameters:  <none>
------------------------------------------------------------------------------*/

END PROCEDURE.

/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME

&ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI wWin  _DEFAULT-DISABLE
PROCEDURE disable_UI :
/*------------------------------------------------------------------------------
  Purpose:     DISABLE the User Interface
  Parameters:  <none>
  Notes:       Here we clean-up the user-interface by deleting
               dynamic widgets we have created and/or hide 
               frames.  This procedure is usually called when
               we are ready to "clean-up" after running.
------------------------------------------------------------------------------*/
  /* Delete the WINDOW we created */
  IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(wWin)
  THEN DELETE WIDGET wWin.
  IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
END PROCEDURE.

/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME

&ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI wWin  _DEFAULT-ENABLE
PROCEDURE enable_UI :
/*------------------------------------------------------------------------------
  Purpose:     ENABLE the User Interface
  Parameters:  <none>
  Notes:       Here we display/view/enable the widgets in the
               user-interface.  In addition, OPEN all queries
               associated with each FRAME and BROWSE.
               These statements here are based on the "Other 
               Settings" section of the widget Property Sheets.
------------------------------------------------------------------------------*/
  DISPLAY TOGGLE-StdDialogs FILL-IN-UploadDir 
      WITH FRAME fMain IN WINDOW wWin.
  ENABLE TOGGLE-StdDialogs BUTTON-OpenFile FILL-IN-UploadDir BUTTON-Upload 
         BUTTON-Download 
      WITH FRAME fMain IN WINDOW wWin.
  {&OPEN-BROWSERS-IN-QUERY-fMain}
  VIEW wWin.
END PROCEDURE.

/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME

&ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exitObject wWin 
PROCEDURE exitObject :
/*------------------------------------------------------------------------------
  Purpose:  Window-specific override of this procedure which destroys 
            its contents and itself.
    Notes:  
------------------------------------------------------------------------------*/

  APPLY "CLOSE":U TO THIS-PROCEDURE.
  RETURN.

END PROCEDURE.

/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME

