Package hermes.browser.dialog

Source Code of hermes.browser.dialog.ProviderConfigPanel

/*
* Copyright 2003,2004 Colin Crist
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*      http://www.apache.org/licenses/LICENSE-2.0
*
*  Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/

package hermes.browser.dialog;

import hermes.browser.HermesBrowser;
import hermes.browser.components.ClasspathGroupTable;
import hermes.browser.model.ClasspathGroupTableModel;
import hermes.config.HermesConfig;

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.io.File;

import javax.swing.BorderFactory;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.BevelBorder;
import javax.swing.border.Border;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.xml.bind.JAXBException;

import org.apache.log4j.Category;

import com.jidesoft.swing.JideScrollPane;

/**
* @author colincrist@hermesjms.com
* @version $Id: ProviderConfigPanel.java,v 1.2 2004/07/21 19:46:15 colincrist
*          Exp $
*/

public class ProviderConfigPanel extends JPanel
{
    /**
   *
   */
  private static final long serialVersionUID = -1040231054553333838L;
  private static final Category cat = Category.getInstance(ProviderConfigPanel.class);
    private static File lastDirectory = null;

    private PreferencesDialog dialog;
    private ClasspathGroupTable table;
    private ClasspathGroupTableModel model;
    private HermesConfig hermesConfig;
    private JLabel topLabel = new JLabel();
    private JideScrollPane tableSP = new JideScrollPane();
    private boolean modelChanged = false;

    public ProviderConfigPanel(PreferencesDialog dialog)
    {
        super();

        this.dialog = dialog;

        init();
    }

    private void init()
    {
        Border border = BorderFactory.createBevelBorder(BevelBorder.RAISED);
        JPanel topPanel = new JPanel();

        topPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
        topPanel.setLayout(new GridLayout(1, 2));

        topLabel.setText("ClasspathGroups containing JMS providers and dependent libraries.");

        setLayout(new BorderLayout());
        setBorder(BorderFactory.createTitledBorder(border, "ClasspathGroups"));

        topPanel.add(topLabel);

        add(topPanel, BorderLayout.NORTH);
        add(tableSP, BorderLayout.CENTER);
        add(new JLabel(), BorderLayout.SOUTH);

    }

    public boolean isModelChanged()
    {
        return modelChanged;
    }

    public void setHermesConfig(HermesConfig hermesConfig)
    {
        this.hermesConfig = hermesConfig;

        try
        {
            model = new ClasspathGroupTableModel(dialog, HermesBrowser.getConfigDAO().duplicateClasspathGroups(hermesConfig.getClasspathGroup()));

            if ( table == null)
            {
                table = new ClasspathGroupTable(dialog, model);
                tableSP.setViewportView(table);
                tableSP.addMouseListener(table.getMouseAdapter());
            }
            else
            {
                table.setModel(model);
            }

            model.addTableModelListener(new TableModelListener()
            {
                public void tableChanged(TableModelEvent evt)
                {
                    if ( evt.getType() == TableModelEvent.INSERT || evt.getType() == TableModelEvent.UPDATE)
                    {
                        modelChanged = true;
                    }
                }
            });
        }
        catch (JAXBException e)
        {
            cat.error(e.getMessage(), e);
        }
    }

    public void updateModel()
    {
        hermesConfig.getClasspathGroup().clear();
        hermesConfig.getClasspathGroup().addAll(model.getRows());
        modelChanged = false ;
    }
}
TOP

Related Classes of hermes.browser.dialog.ProviderConfigPanel

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.