Package net.sourceforge.squirrel_sql.client.update.gui.installer

Source Code of net.sourceforge.squirrel_sql.client.update.gui.installer.ProgressDialogControllerImpl

/*
* Copyright (C) 2008 Rob Manning
* manningr@users.sourceforge.net
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/
package net.sourceforge.squirrel_sql.client.update.gui.installer;

import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.GridLayout;

import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JProgressBar;

import net.sourceforge.squirrel_sql.fw.gui.GUIUtils;
import net.sourceforge.squirrel_sql.fw.util.log.ILogger;
import net.sourceforge.squirrel_sql.fw.util.log.LoggerController;

/**
* Progress dialog controller that shows, updates and hides a single progress bar dialog.
*/
public class ProgressDialogControllerImpl implements ProgressDialogController
{
  /** the dialog being displayed */
  private JDialog currentDialog = null;

  /** The message that appears in the dialog just above the detail message */
  private JLabel currentMessage = null;

  /** The message that appears in the dialog just above the progress bar */
  private JLabel detailMessage = null;
 
  /** the progress bar */
  private JProgressBar currentProgressBar = null;

  /** Logger for this class. */
  private static ILogger s_log = LoggerController.createLogger(ProgressDialogControllerImpl.class);
 
  /**
   * @see net.sourceforge.squirrel_sql.client.update.gui.installer.ProgressDialogController#hideProgressDialog()
   */
  public void hideProgressDialog()
  {
    s_log.info("Hiding dialog");
    GUIUtils.processOnSwingEventThread(new Runnable()
    {
      public void run()
      {
        currentDialog.setVisible(false);
      }
    }, true);
  }

  /**
   * @see net.sourceforge.squirrel_sql.client.update.gui.installer.ProgressDialogController#incrementProgress()
   */
  public void incrementProgress()
  {
    s_log.info("incrementing progress");
    GUIUtils.processOnSwingEventThread(new Runnable()
    {
      public void run()
      {
        int currentValue = currentProgressBar.getValue();
        currentProgressBar.setValue(currentValue + 1);
      }
    }, true);
  }

  /**
   * @see net.sourceforge.squirrel_sql.client.update.gui.installer.ProgressDialogController#setDetailMessage(java.lang.String)
   */
  public void setDetailMessage(final String msg)
  {
    s_log.info("Setting detail message: "+msg);
    GUIUtils.processOnSwingEventThread(new Runnable()
    {
      public void run()
      {
        detailMessage.setText(msg);
      }
    }, true);
  }

  /**
   * @see net.sourceforge.squirrel_sql.client.update.gui.installer.ProgressDialogController#showProgressDialog(java.lang.String,
   *      java.lang.String, int)
   */
  public void showProgressDialog(final String title, final String msg, final int total)
  {
    s_log.info("showing progress dialog");
    GUIUtils.processOnSwingEventThread(new Runnable()
    {
      public void run()
      {
        currentDialog = new JDialog((Frame) null, title);
        currentMessage = new JLabel(msg);
        detailMessage = new JLabel("...");
        currentProgressBar = new JProgressBar(0, total - 1);
       
        JPanel panel = new JPanel(new BorderLayout());
        JPanel messagePanel = new JPanel(new GridLayout(2,1));
        messagePanel.add(currentMessage);
        messagePanel.add(detailMessage);
        panel.add(messagePanel, BorderLayout.CENTER);
        panel.add(currentProgressBar, BorderLayout.SOUTH);
       
        currentDialog.getContentPane().add(panel);
        currentDialog.setSize(300, 100);
        GUIUtils.centerWithinScreen(currentDialog);
        currentDialog.setVisible(true);
      }
    }, true);

  }

  public void resetProgressDialog(final String title, final String msg, final int total)
  {
    GUIUtils.processOnSwingEventThread(new Runnable() {
      public void run() {
        currentDialog.setTitle(title);
        currentMessage.setText(msg);
        currentProgressBar.setValue(0);
        currentProgressBar.setMinimum(0);
        currentProgressBar.setMaximum(total);
      }
    });
   
  }

}
TOP

Related Classes of net.sourceforge.squirrel_sql.client.update.gui.installer.ProgressDialogControllerImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.