home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1997 May / Pcwk0597.iso / borland / ib / setups / intrabld / data.z / PROFILE.JCF < prev    next >
Text File  |  1996-12-11  |  8KB  |  289 lines

  1. /****************************************************************************\
  2. *                                                                            *
  3. * Profile.jcf - Custom Security Form Classes                                 *
  4. *                                                                            *
  5. * Updated 11/07/96 by IntraBuilder Samples Group                             *
  6. * $Revision:   1.1  $                                                       *
  7. *                                                                            *
  8. * Copyright (c) 1996, Borland International, Inc. All rights reserved.       *
  9. *                                                                            *
  10. \****************************************************************************/
  11. //
  12. //   smUserProfileForm
  13. //
  14. //   You need to set three custom properties of this form:
  15. //
  16. //       security - assign a SecurityManager object that has already logged in
  17. //       callingForm - assign a form reference. Focus is returned to this form
  18. //       changeForm - string with name of the Change Password form
  19. //
  20. class smUserProfileForm extends Form custom {
  21.    with (this) {
  22.       onServerLoad = class::onServerLoad;
  23.       height = 14;
  24.       left = 0;
  25.       top = 0;
  26.       width = 76;
  27.       title = "User profile";
  28.    }
  29.  
  30.  
  31.    with (this.nameHTML = new HTML(this)){
  32.       height = 1;
  33.       top = 5;
  34.       width = 14;
  35.       color = "black";
  36.       text = "User name";
  37.  
  38.    }
  39.  
  40.    with (this.userNameHTML = new HTML(this)){
  41.       height = 1;
  42.       left = 14;
  43.       top = 5;
  44.       width = 22;
  45.       color = "black";
  46.       text = "name";
  47.  
  48.    }
  49.  
  50.    with (this.createHTML = new HTML(this)){
  51.       height = 1;
  52.       left = 36;
  53.       top = 5;
  54.       width = 12;
  55.       color = "black";
  56.       text = "Created";
  57.  
  58.    }
  59.  
  60.    with (this.createdHTML = new HTML(this)){
  61.       height = 1;
  62.       left = 48;
  63.       top = 5;
  64.       width = 14;
  65.       color = "black";
  66.       text = "  /  /  ";
  67.  
  68.    }
  69.  
  70.    with (this.lastLoginHTML = new HTML(this)){
  71.       height = 1;
  72.       top = 6;
  73.       width = 14;
  74.       color = "black";
  75.       text = "Last login";
  76.  
  77.    }
  78.  
  79.    with (this.loginHTML = new HTML(this)){
  80.       height = 1;
  81.       left = 14;
  82.       top = 6;
  83.       width = 22;
  84.       color = "black";
  85.       text = "login";
  86.  
  87.    }
  88.  
  89.    with (this.descriptHTML = new HTML(this)){
  90.       height = 1;
  91.       top = 7;
  92.       width = 14;
  93.       color = "black";
  94.       text = "Description";
  95.  
  96.    }
  97.  
  98.    with (this.descriptionHTML = new HTML(this)){
  99.       height = 1;
  100.       left = 14;
  101.       top = 7;
  102.       width = 50;
  103.       color = "black";
  104.       text = "description";
  105.  
  106.    }
  107.  
  108.    with (this.descriptionText = new Text(this)){
  109.       visible = false;
  110.       left = 14;
  111.       top = 7;
  112.       width = 50;
  113.       value = "";
  114.  
  115.    }
  116.  
  117.    with (this.passButton = new Button(this)){
  118.       onServerClick = class::passButton_onServerClick;
  119.       top = 8.5;
  120.       width = 24;
  121.       text = "Change Password...";
  122.  
  123.    }
  124.  
  125.    with (this.descriptButton = new Button(this)){
  126.       onServerClick = class::descriptButton_onServerClick;
  127.       left = 32;
  128.       top = 8.5;
  129.       width = 24;
  130.       text = "Edit Description...";
  131.  
  132.    }
  133.  
  134.    with (this.groupHTML = new HTML(this)){
  135.       height = 1;
  136.       top = 10;
  137.       width = 64;
  138.       color = "black";
  139.       text = "Groups";
  140.  
  141.    }
  142.  
  143.    with (this.groupSelect = new ListBox(this)){
  144.       height = 3;
  145.       top = 11;
  146.       width = 64;
  147.  
  148.    }
  149.  
  150.    with (this.resourceHTML = new HTML(this)){
  151.       height = 1;
  152.       top = 14;
  153.       width = 64;
  154.       color = "black";
  155.       text = "Resources";
  156.  
  157.    }
  158.  
  159.    with (this.resourceSelect = new ListBox(this)){
  160.       height = 3;
  161.       top = 15;
  162.       width = 64;
  163.  
  164.    }
  165.  
  166.    with (this.backButton = new Button(this)){
  167.       onServerClick = class::backButton_onServerClick;
  168.       top = 18;
  169.       width = 10.5;
  170.       text = "Back";
  171.  
  172.    }
  173.  
  174.    with (this.errorHTML = new HTML(this)){
  175.       height = 4;
  176.       left = 1;
  177.       top = 7;
  178.       width = 80;
  179.       color = "black";
  180.       text = "Error loading user profile";
  181.       pageno = 2;
  182.  
  183.    }
  184.  
  185.    with (this.backButton2 = new Button(this)){
  186.       onServerClick = {;this.form.pageno = 1};
  187.       left = 1;
  188.       top = 11;
  189.       width = 10.5;
  190.       text = "Back";
  191.       pageno = 2;
  192.  
  193.    }
  194.  
  195.    function onServerLoad()
  196.    {
  197.       try {
  198.          this.userNameHTML.text     = this.security.getUserName();
  199.          this.createdHTML.text      = this.security.getCreated();
  200.          this.loginHTML.text        = this.security.getLogin();
  201.          this.descriptionHTML.text  = this.security.getDescription();
  202.          this.descriptionText.value = this.security.getDescription();
  203.          this.gArray = new Array();
  204.          this.rArray = new Array();
  205.          var tmpVar = "";
  206.          var tmpArray = this.security.getGroups();
  207.          for (var i = 0; i<tmpArray.count(); i++) {
  208.             var tmpVar = (i==0) ? tmpArray.firstKey : tmpArray.nextKey(tmpVar);
  209.             this.gArray.add(tmpVar + " - " + tmpArray[tmpVar]);
  210.          }
  211.          var tmpArray = this.security.getResources();
  212.          for (var i = 0; i<tmpArray.count(); i++) {
  213.             var tmpVar = (i==0) ? tmpArray.firstKey : tmpArray.nextKey(tmpVar);
  214.             this.rArray.add(tmpVar + " - " + tmpArray[tmpVar]);
  215.          }
  216.          this.groupSelect.options    = "array this.gArray";
  217.          this.resourceSelect.options = "array this.rArray";
  218.          // make sure the change password form is available
  219.          var file = this.changeForm.substring(0,this.changeForm.indexOf(".jfm"))
  220.          if (file.length == 0)             
  221.             if (!new File().exists(this.changeForm))
  222.                this.passButton.visible = false;
  223.          else
  224.             if (!new File().exists(file+".jfm") && !new File().exists(file+".jfo"))
  225.                this.passButton.visible = false;
  226.       }
  227.       catch (Exception e) {
  228.          this.errorHTML.text = "Error loading user profile: " + 
  229.                                e.message + " (" + e.code + ")";
  230.          this.backButton2.visible = false;
  231.          this.pageno = 2;
  232.       }
  233.    }
  234.  
  235.    function passButton_onServerClick()
  236.    {
  237.       try {
  238.          _sys.scripts.load(this.form.changeForm);
  239.          var f = eval("new " + this.form.changeFormClass + "()");
  240.          f.callingForm = this.form;
  241.          f.security = this.form.security;
  242.          f.open();
  243.       }
  244.       catch (Exception e) {
  245.          this.visible = false;
  246.          this.form.errorHTML.text = "Error loading password form: " +
  247.                   e.message + " (" + e.code + ")";
  248.          this.form.pageno = 2;
  249.       }
  250.    }
  251.  
  252.    function descriptButton_onServerClick()
  253.    {
  254.       if (this.text == 'Save') {
  255.          this.form.descriptionHTML.text = this.form.descriptionText.value;
  256.          this.form.descriptionText.visible = false;
  257.          this.form.descriptionHTML.visible = true;
  258.          this.text = 'Edit Description';  
  259.          try {
  260.             this.form.security.changeDescription( this.form.descriptionText.value );
  261.          }
  262.          catch (Exception e) {
  263.             this.text = ' - Error - Not Saved - ';
  264.             this.onServerClick = {;var x=1};  // dummy event handler
  265.          }
  266.       }
  267.       else {
  268.          this.form.descriptionHTML.visible = false;
  269.          this.form.descriptionText.visible = true;
  270.          this.text = 'Save';  
  271.       }
  272.    }
  273.  
  274.    function backButton_onServerClick()
  275.    {
  276.       try {
  277.          this.form.callingForm.open();
  278.          this.form.release();
  279.       }
  280.       catch (Exception e) {
  281.          this.form.errorHTML.text = "Error closing user profile: " + 
  282.                                e.message + " (" + e.code + ")";
  283.          this.form.backButton2.visible = true;
  284.          this.form.pageno = 2;
  285.       }
  286.    }
  287.  
  288. }
  289.