//$HeadURL$ /*---------------------------------------------------------------------------- This file is part of deegree, http://deegree.org/ Copyright (C) 2001-2009 by: Department of Geography, University of Bonn and lat/lon GmbH 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 Contact information: lat/lon GmbH Aennchenstr. 19, 53177 Bonn Germany http://lat-lon.de/ Department of Geography, University of Bonn Prof. Dr. Klaus Greve Postfach 1147, 53001 Bonn Germany http://www.geographie.uni-bonn.de/deegree/ e-mail: info@deegree.org ----------------------------------------------------------------------------*/ package org.deegree.igeo.views.swing.style.component; import static org.deegree.igeo.i18n.Messages.get; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.border.EmptyBorder; import org.deegree.framework.log.ILogger; import org.deegree.framework.log.LoggerFactory; import org.deegree.framework.xml.XMLTools; import org.deegree.igeo.ApplicationContainer; import org.deegree.igeo.style.perform.SldIO; import com.jgoodies.forms.builder.ButtonBarBuilder; import com.jgoodies.forms.builder.DefaultFormBuilder; import com.jgoodies.forms.layout.FormLayout; /** * <code>SldFrame</code> * * @author <a href="mailto:buesching@lat-lon.de">Lyn Buesching</a> * @author last edited by: $Author$ * * @version $Revision$, $Date$ */ public class SldFrame extends JFrame { private static final long serialVersionUID = -1141789314492561424L; private static final ILogger LOG = LoggerFactory.getLogger( SldFrame.class ); private JTextArea textArea; private ApplicationContainer<?> appContainer; /** * @param ruleName * the name of the rule * @param appContainer * the applicationContainer */ public SldFrame( String ruleName, ApplicationContainer<?> appContainer ) { this.appContainer = appContainer; setTitle( get( "$MD11063", ruleName ) ); init(); } /** * @param sld * the sld to set */ public void setSld( String sld ) { textArea.setText( sld ); } private void init() { textArea = new JTextArea( 150, 100 ); textArea.setWrapStyleWord( true ); textArea.setLineWrap( true ); JScrollPane scrollPane = new JScrollPane( textArea ); textArea.setEditable( false ); JPanel buttons = getButtonBar(); buttons.setBorder( new EmptyBorder( 20, 10, 10, 10 ) ); FormLayout fl = new FormLayout( "center:default", "default:grow(1.0), default" ); DefaultFormBuilder builder = new DefaultFormBuilder( fl ); builder.append( scrollPane ); builder.nextLine(); builder.append( buttons ); getContentPane().add( builder.getPanel() ); } private JPanel getButtonBar() { JButton prettyPrintBt = new JButton( get( "$MD11064" ) ); prettyPrintBt.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent e ) { try { textArea.setText( XMLTools.getAsPrettyString( textArea.getText() ) ); } catch ( Exception ex ) { LOG.logWarning( "ignore", ex ); } } } ); JButton saveSLDBt = new JButton( get( "$MD11065" ) ); saveSLDBt.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent e ) { saveSld(); } } ); JButton exitBt = new JButton( get( "$MD11066" ) ); exitBt.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent e ) { setVisible( false ); } } ); ButtonBarBuilder bbBuilder = new ButtonBarBuilder(); bbBuilder.addUnrelatedGap(); bbBuilder.addGridded( prettyPrintBt ); bbBuilder.addUnrelatedGap(); bbBuilder.addGridded( saveSLDBt ); bbBuilder.addUnrelatedGap(); bbBuilder.addGridded( exitBt ); bbBuilder.addUnrelatedGap(); return bbBuilder.getPanel(); } private void saveSld() { SldIO.exportSld( textArea.getText(), appContainer, this ); } }