    001package org.vishia.commander;
    002
    003import java.io.File;
    004
    005import org.vishia.gral.base.GralButton;
    006import org.vishia.gral.base.GralPos;
    007import org.vishia.gral.base.GralWidget;
    008import org.vishia.gral.base.GralWindow;
    009import org.vishia.gral.ifc.GralColor;
    010import org.vishia.gral.ifc.GralTextField_ifc;
    011import org.vishia.gral.ifc.GralUserAction;
    012import org.vishia.gral.ifc.GralWidget_ifc;
    013import org.vishia.gral.ifc.GralWindow_ifc;
    014import org.vishia.util.KeyCode;
    015
    016public class FcmdStatus
    017{
    018  /**Version, history and license
    019   * <ul>
    020   * <li>2012-10-27 Hartmut created
    021   * </ul>
    022   *
    023   *
    024   * <b>Copyright/Copyleft</b>:
    025   * For this source the LGPL Lesser General Public License,
    026   * published by the Free Software Foundation is valid.
    027   * It means:
    028   * <ol>
    029   * <li> You can use this source without any restriction for any desired purpose.
    030   * <li> You can redistribute copies of this source to everybody.
    031   * <li> Every user of this source, also the user of redistribute copies
    032   *    with or without payment, must accept this license for further using.
    033   * <li> But the LPGL ist not appropriate for a whole software product,
    034   *    if this source is only a part of them. It means, the user
    035   *    must publish this part of source,
    036   *    but don't need to publish the whole source of the own product.
    037   * <li> You can study and modify (improve) this source
    038   *    for own using or for redistribution, but you have to license the
    039   *    modified sources likewise under this LGPL Lesser General Public License.
    040   *    You mustn't delete this Copyright/Copyleft inscription in this source file.
    041   * </ol>
    042   * If you are intent to use this sources without publishing its usage, you can get
    043   * a second license subscribing a special contract with the author.
    044   *
    045   * @author Hartmut Schorrig = hartmut.schorrig@vishia.de
    046   *
    047   *
    048   */
    049  public static final int version = 20121027;
    050
    051  protected final Fcmd main;
    052
    053
    054  GralWindow_ifc windStatus;
    055
    056  GralButton widgCopy, widgEsc;
    057
    058
    059  public FcmdStatus(Fcmd main)
    060  { this.main = main;
    061  }
    062
    063
    064
    065  /**Builds the content of the file property window. The window is created static. It is shown
    066   * whenever it is used.  */
    067  void buildWindow()
    068  { main._gralMng.selectPanel("primaryWindow");
    069    main._gralMng.setPosition(-30, 0, -47, 0, 1, 'r'); //right buttom, about half less display width and hight.
    070    int windProps = GralWindow.windConcurrently;
    071    GralWindow window =  main._gralMng.createWindow("windStatus", "Status - The.file.Commander", windProps);
    072    windStatus = window;
    073    main._gralMng.setPosition(3.5f, GralPos.size -3, 1, GralPos.size +5, 0, 'd');
    074    widgCopy = main._gralMng.addButton("sCopy", main.copyCmd.actionConfirmCopy, "copy");
    075    widgEsc = main._gralMng.addButton("dirBytes", actionButton, "esc");
    076  }
    077
    078  /**Opens the view window and fills its content.
    079   * @param src The path which is selected as source. It may be a directory or a file.
    080   */
    081  void openDialog()
    082  {
    083    if(main.copyCmd.listEvCopy.size() >0){
    084      widgCopy.setBackColor(GralColor.getColor("rd"), 0);
    085    } else {
    086      widgCopy.setBackColor(GralColor.getColor("wh"), 0);
    087    }
    088
    089    windStatus.setFocus(); //setWindowVisible(true);
    090
    091  }
    092
    093
    094  /**Action for OK.
    095   */
    096  GralUserAction actionButton = new GralUserAction("actionButton")
    097  {
    098    @Override public boolean exec(int keyCode, GralWidget_ifc widg, Object... params)
    099    { if(KeyCode.isControlFunctionMouseUpOrMenu(keyCode)){
    100        if(widg == widgEsc){
    101          windStatus.closeWindow();
    102        }
    103      }
    104      return true;
    105  } };
    106
    107
    108  /**Action for Key F2 for view command.
    109   */
    110  GralUserAction actionOpenDialog = new GralUserAction("actionOpenDialog")
    111  {
    112    @Override public boolean userActionGui(int keyCode, GralWidget infos, Object... params){
    113      if(KeyCode.isControlFunctionMouseUpOrMenu(keyCode)){
    114        openDialog();
    115      }
    116      return true;
    117    }
    118  };
    119
    120
    121
    122}