Package org.exist.backup

Source Code of org.exist.backup.RestoreDialog$UploadProgressObserver

/*
*  eXist Open Source Native XML Database
*  Copyright (C) 2003-2010 The eXist Project
*  http://exist-db.org
*
*  This program 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
*  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 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*
*  $Id$
*/
package org.exist.backup;

import org.exist.storage.ElementIndex;
import org.exist.storage.TextSearchEngine;
import org.exist.util.ProgressIndicator;

import java.awt.Dimension;
import java.awt.Frame;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.HeadlessException;
import java.awt.Insets;

import java.util.Observable;
import java.util.Observer;

import javax.swing.BorderFactory;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JProgressBar;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;


public class RestoreDialog extends JDialog
{
    private static final long serialVersionUID  = 3773486348231766907L;

    JTextField                currentCollection;
    JTextField                currentBackup;
    JTextField                resource;
    JTextArea                 messages;
    JProgressBar              progress;

    Observer                  progressObserver  = new UploadProgressObserver();

    /**
     * Creates a new RestoreDialog object.
     *
     * @param   owner
     * @param   title
     * @param   modal
     *
     * @throws  HeadlessException
     */
    public RestoreDialog( Frame owner, String title, boolean modal ) throws HeadlessException
    {
        super( owner, title, modal );
        setupComponents();
        setSize( new Dimension( 350, 200 ) );
        pack();
    }

    private void setupComponents()
    {
        final GridBagLayout grid = new GridBagLayout();
        getContentPane().setLayout( grid );
        final GridBagConstraints c = new GridBagConstraints();
        c.insets = new Insets( 5, 5, 5, 5 );

        JLabel label = new JLabel( "Backup:" );
        c.gridx  = 0;
        c.gridy  = 0;
        c.anchor = GridBagConstraints.WEST;
        c.fill   = GridBagConstraints.NONE;
        grid.setConstraints( label, c );
        getContentPane().add( label );

        currentBackup = new JTextField( 50 );
        currentBackup.setEditable( false );
        c.gridx  = 1;
        c.gridy  = 0;
        c.anchor = GridBagConstraints.WEST;
        c.fill   = GridBagConstraints.HORIZONTAL;
        grid.setConstraints( currentBackup, c );
        getContentPane().add( currentBackup );

        label    = new JLabel( "Collection:" );
        c.gridx  = 0;
        c.gridy  = 1;
        c.anchor = GridBagConstraints.WEST;
        c.fill   = GridBagConstraints.NONE;
        grid.setConstraints( label, c );
        getContentPane().add( label );

        currentCollection = new JTextField( 50 );
        currentCollection.setEditable( false );
        c.gridx  = 1;
        c.gridy  = 1;
        c.anchor = GridBagConstraints.WEST;
        c.fill   = GridBagConstraints.HORIZONTAL;
        grid.setConstraints( currentCollection, c );
        getContentPane().add( currentCollection );

        label    = new JLabel( "Restoring:" );
        c.gridx  = 0;
        c.gridy  = 2;
        c.anchor = GridBagConstraints.WEST;
        c.fill   = GridBagConstraints.NONE;
        grid.setConstraints( label, c );
        getContentPane().add( label );

        resource = new JTextField( 40 );
        resource.setEditable( false );
        c.gridx  = 1;
        c.gridy  = 2;
        c.anchor = GridBagConstraints.WEST;
        c.fill   = GridBagConstraints.HORIZONTAL;
        grid.setConstraints( resource, c );
        getContentPane().add( resource );

        label    = new JLabel( "Progress:" );
        c.gridx  = 0;
        c.gridy  = 3;
        c.anchor = GridBagConstraints.WEST;
        c.fill   = GridBagConstraints.NONE;
        grid.setConstraints( label, c );
        getContentPane().add( label );

        progress = new JProgressBar();
        progress.setStringPainted( true );
        progress.setString( "" );
        c.gridx  = 1;
        c.gridy  = 3;
        c.anchor = GridBagConstraints.EAST;
        c.fill   = GridBagConstraints.HORIZONTAL;
        grid.setConstraints( progress, c );
        getContentPane().add( progress );

        messages = new JTextArea( 5, 50 );
        messages.setEditable( false );
        final JScrollPane scroll = new JScrollPane( messages, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER );
        scroll.setBorder( BorderFactory.createTitledBorder( "Messages" ) );
        c.gridx     = 0;
        c.gridy     = 4;
        c.gridwidth = 2;
        c.anchor    = GridBagConstraints.WEST;
        c.fill      = GridBagConstraints.HORIZONTAL;
        grid.setConstraints( scroll, c );
        getContentPane().add( scroll );
    }


    public void setBackup( String backup )
    {
        currentBackup.setText( backup );
    }


    public void setCollection( String collection )
    {
        currentCollection.setText( collection );
    }


    public void setResource( String current )
    {
        resource.setText( current );
    }


    public void displayMessage( String message )
    {
        messages.append( message + '\n' );
        messages.setCaretPosition( messages.getDocument().getLength() );
    }


    public Observer getObserver()
    {
        return( progressObserver );
    }

    class UploadProgressObserver implements Observer
    {
        int mode = 0;

        public void update( Observable o, Object arg )
        {
            progress.setIndeterminate( false );
            final ProgressIndicator ind = (ProgressIndicator)arg;
            progress.setValue( ind.getPercentage() );

            if( o instanceof TextSearchEngine ) {
                progress.setString( "Storing words" );
            } else if( o instanceof ElementIndex ) {
                progress.setString( "Storing elements" );
            } else {
                progress.setString( "Storing nodes" );
            }
        }

    }
}
TOP

Related Classes of org.exist.backup.RestoreDialog$UploadProgressObserver

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.