⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 authpopup.java

📁 emboss的linux版本的源代码
💻 JAVA
字号:
/******************************************************************  This program is free software; you can redistribute it and/or*  modify it under the terms of the GNU General Public License*  as published by the Free Software Foundation; either version 2*  of the License, or (at your option) any later version.**  This program is distributed in the hope that it will be useful,*  but WITHOUT ANY WARRANTY; without even the implied warranty of*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the*  GNU General Public License for more details.**  You should have received a copy of the GNU General Public License*  along with this program; if not, write to the Free Software*  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.**  Based on EmbreoAuthPopup**  @author: Copyright (C) Tim Carver****************************************************************/package org.emboss.jemboss.soap;import java.awt.*;import javax.swing.*;import java.awt.event.*;import org.emboss.jemboss.JembossParams;import org.emboss.jemboss.gui.filetree.LocalAndRemoteFileTreeFrame;/**** Display a popup asking the user to enter a username * and password**/public class AuthPopup extends JFrame{  /** splash panel */  private JPanel splashp;  /** progress monitor */  private int iprogress = 0;  /** max value for the progress monitor */  private int iprogressmax = 0;  /** jemboss properties */  private JembossParams mysettings;  /** progress bar */  private JProgressBar progressBar;  /** progress label */  private JLabel progressLabel;  /** OK button */  private JButton okButton;  /** username field */  private JTextField ufield;  /** passwd field */  private JPasswordField pfield;  /** true if window is to be hidden */  private boolean exitOnDone = false;  /** prompt for login panel */  private JPanel promptPanel;  /**  *  * @param mysettings jemboss properties  * @param f          Parent frame the popup is associated with  *  */  public AuthPopup(final JembossParams mysettings, JFrame f)   {    if(f != null)    {      String text = "";      if (mysettings.getUseAuth() == true)       {        if (mysettings.getServiceUserName() == null) 	  text = "You need to supply a username and password\n"	       + "before running an application.";        else           text = "Login to server failed\n"	       + "Please check your login details.";      }       else      {        text = "The server wants a username and password,\n"	     + "but we weren't expecting to need to.\n"             + "Please supply the correct login details.";      }      JOptionPane.showMessageDialog(f,text,"Authentication failed",                                    JOptionPane.ERROR_MESSAGE);    }// setup a Jemboss login box    JPanel logoPanel = new JPanel(new BorderLayout());    ClassLoader cl = this.getClass().getClassLoader();    ImageIcon ii = new ImageIcon(               cl.getResource("images/Jemboss_logo_greyback.gif"));    logoPanel.add(new JLabel(ii),BorderLayout.WEST);    splashp = (JPanel)getContentPane();    splashp.setLayout(new BorderLayout());    splashp.add(logoPanel, BorderLayout.NORTH);    //if required, a login prompt    if (mysettings.getUseAuth())     {      setTitle("Login");      promptPanel = new JPanel(new BorderLayout());      JPanel loginPanel = new JPanel();      loginPanel.setLayout(new GridLayout(2,2));            ufield = new JTextField(16);      if (mysettings.getServiceUserName() != null) 	ufield.setText(mysettings.getServiceUserName());            pfield = new JPasswordField(16);      final JTextField xfield = new JTextField(16);      JLabel ulab = new JLabel(" Username:", SwingConstants.LEFT);      JLabel plab = new JLabel(" Password:", SwingConstants.LEFT);      //add labels etc      loginPanel.add(ulab);      loginPanel.add(ufield);      loginPanel.add(plab);      loginPanel.add(pfield);      promptPanel.add(loginPanel, BorderLayout.CENTER);      setSize(380,170);      // all added, display the frame      setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);    }    else    {      setTitle("Jemboss Launch");      exitOnDone = true;    }    setLocation(1,5);    this.mysettings = mysettings;  }  /**  *  * Called on startup to display the login and progress bar.  * @param mysettings	jemboss properties  * @param iprogressmax	max value for progress monitor  *  */  public AuthPopup(final JembossParams mysettings, int iprogressmax)  {     this(mysettings,null);     this.mysettings = mysettings;     this.iprogressmax = iprogressmax;     //progress meter at startup     if (iprogressmax > 0)     {       JPanel progressPanel = new JPanel();       progressPanel.setLayout(new FlowLayout(FlowLayout.LEFT));       progressBar = new JProgressBar(0,iprogressmax);       progressBar.setValue(0);       progressLabel = new JLabel("Starting up.");       progressPanel.add(progressBar);       progressPanel.add(progressLabel);       splashp.add(progressPanel,BorderLayout.SOUTH);     }    // add a border to the main pane to make is stand out    splashp.setBorder(BorderFactory.createMatteBorder(2,2,2,2,Color.black));    setSize(380,200);    // all added, display the frame    setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);  }  /**  *  * Buttons across the bottom  *  */  public void addBottomPanel()   {    setTitle("File Manager Login");    final JPanel buttonPanel =          new JPanel(new FlowLayout(FlowLayout.RIGHT));    JButton exitButton = new JButton("Exit");    okButton = new JButton("OK");    exitButton.addActionListener(new ActionListener()    {      public void actionPerformed(ActionEvent e)      {        System.exit(0);      }    });    final JFrame fthis = this;    okButton.addActionListener(new ActionListener()    {      public void actionPerformed(ActionEvent e)      {        mysettings.setServiceUserName(ufield.getText());        mysettings.setServicePasswd(pfield.getPassword());        exitOnDone = true;        if (iprogressmax > 0)        {          remove(promptPanel);          pack();        }        else          setVisible(false);        try        {          LocalAndRemoteFileTreeFrame treeFrame =                  new LocalAndRemoteFileTreeFrame(mysettings);          treeFrame.setExit();          Dimension d = treeFrame.getToolkit().getScreenSize();          treeFrame.setLocation(0,((int)d.getHeight()-treeFrame.getHeight())/2);          treeFrame.setVisible(true);        }        catch(JembossSoapException jse)        {          if (iprogressmax > 0)          {            promptPanel.add(buttonPanel, BorderLayout.SOUTH);            pack();          }          setVisible(true);        }      }    });    buttonPanel.add(exitButton);    buttonPanel.add(okButton);    promptPanel.add(buttonPanel, BorderLayout.SOUTH);    splashp.add(promptPanel);    //close login box on carriage return in passwd field    pfield.addActionListener(new ActionListener()    {      public void actionPerformed(ActionEvent e)      {        mysettings.setServiceUserName(ufield.getText());        mysettings.setServicePasswd(pfield.getPassword());        exitOnDone = true;        fthis.setVisible(false);        try        {          LocalAndRemoteFileTreeFrame treeFrame =                  new LocalAndRemoteFileTreeFrame(mysettings);          treeFrame.setExit();          Dimension d = treeFrame.getToolkit().getScreenSize();          treeFrame.setLocation(0,((int)d.getHeight()-treeFrame.getHeight())/2);          treeFrame.setVisible(true);        }        catch(JembossSoapException jse)        {          fthis.setVisible(true);        }      }    });  }    /**  *  * Buttons across the bottom  *  */  public void setBottomPanel()  {    JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));    JButton exitButton = new JButton("Exit");    JButton okButton = new JButton("OK");    exitButton.addActionListener(new ActionListener()    {      public void actionPerformed(ActionEvent e)      {        System.exit(0);      }    });    okButton.addActionListener(new ActionListener()    {      public void actionPerformed(ActionEvent e)      {        mysettings.setServiceUserName(ufield.getText());        mysettings.setServicePasswd(pfield.getPassword());        exitOnDone = true;        if(iprogressmax > 0 &&           iprogress != iprogressmax)        {          remove(promptPanel);          pack();        }        else          dispose();      }    });    buttonPanel.add(exitButton);    buttonPanel.add(okButton);    promptPanel.add(buttonPanel, BorderLayout.SOUTH);    splashp.add(promptPanel);//close login box on carriage return in passwd field    pfield.addActionListener(new ActionListener()    {      public void actionPerformed(ActionEvent e)      {        mysettings.setServiceUserName(ufield.getText());        mysettings.setServicePasswd(pfield.getPassword());        exitOnDone = true;        if(iprogressmax > 0 &&           iprogress != iprogressmax)        {          remove(promptPanel);          pack();        }        else          dispose();      }    });  }//public JButton getOKButton()//{//  return okButton;//}  /**  *  * Update the progress bar and label  * @param s	string for progress label  *  */  public void doneSomething(String s)  {    if (iprogressmax > 0)    {      if (iprogress < iprogressmax)      {        iprogress++;        progressBar.setValue(iprogress);      }      progressLabel.setText(s);      if (iprogress == iprogressmax)      {        progressLabel.setText("Startup complete.");        if (exitOnDone)          setVisible(false);      }    }  }  /**  *  * Finish the progress bar and label  * @param s    string for progress label  *  */  public void doneEverything(String s)  {    if (iprogressmax > 0)    {      progressBar.setValue(iprogressmax);      progressLabel.setText(s);      if (exitOnDone)        setVisible(false);    }  }  public JFrame getSplashFrame()  {    return this;  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -