/*
* GeoTools - The Open Source Java GIS Toolkit
* http://geotools.org
*
* (C) 2002-2008, Open Source Geospatial Foundation (OSGeo)
*
* 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;
* version 2.1 of the License.
*
* 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.
*/
package org.geotools.gui.swing.style.sld;
import org.geotools.styling.StyleBuilder;
import org.opengis.filter.expression.Expression;
/**
*
* @author Johann Sorel
*
* @source $URL$
*/
public class JDashPane extends javax.swing.JPanel {
/**
* Dashes panel
*
* Creates new form JDashPanel
*/
public JDashPane() {
initComponents();
}
/**
*
* @return float[]
*/
public float[] getDashes() {
if ( (Float)jsp_lenght.getValue() == 0 || (Float)jsp_between.getValue() == 0) {
return new float[0];
} else {
float[] dashes = new float[2];
dashes[0] = (Float)jsp_lenght.getValue();
dashes[1] = (Float)jsp_between.getValue();
return dashes;
}
}
/**
*
* @param dashes , the default dashes array
*/
public void setDashes(float[] dashes) {
if (dashes.length != 0) {
jsp_lenght.setValue(dashes[0]);
jsp_between.setValue(dashes[1]);
}
}
/**
*
* @return Expression dashes offset
*/
public Expression getOffset(){
StyleBuilder sb = new StyleBuilder();
return sb.literalExpression(jsp_offset.getValue());
}
/**
*
* @param exp default dashes offset
*/
public void setOffset(Expression exp){
if(exp != null)
jsp_offset.setValue( Float.parseFloat(exp.toString()) );
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
jsp_offset = new javax.swing.JSpinner();
jsp_between = new javax.swing.JSpinner();
jsp_lenght = new javax.swing.JSpinner();
jsp_offset.setModel(new javax.swing.SpinnerNumberModel(Float.valueOf(0.0f), null, null, Float.valueOf(1.0f)));
java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("org/geotools/gui/swing/style/sld/Bundle"); // NOI18N
jsp_offset.setToolTipText(bundle.getString("tooltip_offset")); // NOI18N
jsp_between.setModel(new javax.swing.SpinnerNumberModel(Float.valueOf(0.0f), Float.valueOf(0.0f), null, Float.valueOf(1.0f)));
jsp_between.setToolTipText(bundle.getString("tooltip_gap")); // NOI18N
jsp_lenght.setModel(new javax.swing.SpinnerNumberModel(Float.valueOf(0.0f), Float.valueOf(0.0f), null, Float.valueOf(1.0f)));
jsp_lenght.setToolTipText(bundle.getString("tooltip_lenght")); // NOI18N
org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(jsp_lenght, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 46, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jsp_between, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jsp_offset, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
);
layout.linkSize(new java.awt.Component[] {jsp_between, jsp_lenght, jsp_offset}, org.jdesktop.layout.GroupLayout.HORIZONTAL);
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jsp_lenght, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(jsp_between, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(jsp_offset, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
);
layout.linkSize(new java.awt.Component[] {jsp_between, jsp_lenght, jsp_offset}, org.jdesktop.layout.GroupLayout.VERTICAL);
}// </editor-fold>//GEN-END:initComponents
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JSpinner jsp_between;
private javax.swing.JSpinner jsp_lenght;
private javax.swing.JSpinner jsp_offset;
// End of variables declaration//GEN-END:variables
}