/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.opentrafficsimulation.gui;
import com.opentrafficsimulation.connector.Connector;
import com.opentrafficsimulation.connector.utility.ConnectorType;
import com.opentrafficsimulation.editor.light.LightEditor;
import java.awt.image.BufferedImage;
import com.opentrafficsimulation.gui.utility.AssetUtility;
import com.opentrafficsimulation.gui.utility.ExtensionFileFilterUtility;
import com.opentrafficsimulation.gui.utility.InputFilterUtility;
import java.awt.Color;
import java.util.ArrayList;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.filechooser.FileFilter;
import javax.swing.text.PlainDocument;
/**
*
* @author macromania
*/
public class CreateMapFrame extends javax.swing.JFrame {
// Logo of the project
public static BufferedImage logo;
// Singleton instance
private static CreateMapFrame createMapFrame = new CreateMapFrame();
private int lane_num, grid_num, arm_num, circle_num, iteration_num, max_distance, min_distance;
private double lane_speed, grid_length, space_radius;
public String netgenerate_file;
private String osmnet_file = "osmNet.net.xml";
public String osmFile_path;
private JFileChooser chooser;
/**
* Creates new form CreateMapFrame
*/
private CreateMapFrame() {
initComponents();
// Hide panels with respect to combobox value
updateTypes();
// Set input filters
setInputFilters();
}
public static CreateMapFrame getInstance() {
return createMapFrame;
}
private void updateTypes() {
jPanelGrid.setVisible(false);
jPanelRandom.setVisible(false);
jPanelSpider.setVisible(false);
if (jComboBoxType.getSelectedIndex() == 0) {
jPanelGrid.setVisible(true);
} else if (jComboBoxType.getSelectedIndex() == 1) {
jPanelSpider.setVisible(true);
} else if (jComboBoxType.getSelectedIndex() == 2) {
jPanelRandom.setVisible(true);
}
}
private void setInputFilters() {
PlainDocument doc = (PlainDocument) jTextFieldArmNumber.getDocument();
doc.setDocumentFilter(new InputFilterUtility());
doc = (PlainDocument) jTextFieldCirleNumber.getDocument();
doc.setDocumentFilter(new InputFilterUtility());
doc = (PlainDocument) jTextFieldGridLength.getDocument();
doc.setDocumentFilter(new InputFilterUtility());
doc = (PlainDocument) jTextFieldGridNumber.getDocument();
doc.setDocumentFilter(new InputFilterUtility());
doc = (PlainDocument) jTextFieldIteration.getDocument();
doc.setDocumentFilter(new InputFilterUtility());
doc = (PlainDocument) jTextFieldLanes.getDocument();
doc.setDocumentFilter(new InputFilterUtility());
doc = (PlainDocument) jTextFieldMaximumDistance.getDocument();
doc.setDocumentFilter(new InputFilterUtility());
doc = (PlainDocument) jTextFieldMinimumDistance.getDocument();
doc.setDocumentFilter(new InputFilterUtility());
doc = (PlainDocument) jTextFieldSpaceRadius.getDocument();
doc.setDocumentFilter(new InputFilterUtility());
doc = (PlainDocument) jTextFieldSpeed.getDocument();
doc.setDocumentFilter(new InputFilterUtility());
}
/**
* 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.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
jLabelCreateMap = new javax.swing.JLabel();
jPanelUpper = new javax.swing.JPanel();
jLabelName = new javax.swing.JLabel();
jTextFieldName = new javax.swing.JTextField();
jLabelLanes = new javax.swing.JLabel();
jTextFieldLanes = new javax.swing.JTextField();
jLabelSpeed = new javax.swing.JLabel();
jTextFieldSpeed = new javax.swing.JTextField();
jComboBoxType = new javax.swing.JComboBox();
jPanelSelection = new javax.swing.JPanel();
jPanelRandom = new javax.swing.JPanel();
jTextFieldIteration = new javax.swing.JTextField();
jLabelIterations = new javax.swing.JLabel();
jLabelMaximumDistance = new javax.swing.JLabel();
jTextFieldMaximumDistance = new javax.swing.JTextField();
jTextFieldMinimumDistance = new javax.swing.JTextField();
jLabelMinimumDistance = new javax.swing.JLabel();
jPanelSpider = new javax.swing.JPanel();
jTextFieldArmNumber = new javax.swing.JTextField();
jLabelArmNumber = new javax.swing.JLabel();
jLabelCircleNumber = new javax.swing.JLabel();
jTextFieldCirleNumber = new javax.swing.JTextField();
jLabelSpaceRadius = new javax.swing.JLabel();
jTextFieldSpaceRadius = new javax.swing.JTextField();
jPanelGrid = new javax.swing.JPanel();
jLabelNameGridNumber = new javax.swing.JLabel();
jTextFieldGridNumber = new javax.swing.JTextField();
jLabelNameGridLength = new javax.swing.JLabel();
jTextFieldGridLength = new javax.swing.JTextField();
jLabelType1 = new javax.swing.JLabel();
jPanel1 = new javax.swing.JPanel();
jSeparator1 = new javax.swing.JSeparator();
jLabelOr = new javax.swing.JLabel();
jSeparator3 = new javax.swing.JSeparator();
jPanel2 = new javax.swing.JPanel();
jLabelCreateMap1 = new javax.swing.JLabel();
jButtonFileChooser = new javax.swing.JButton();
jLabelFileName = new javax.swing.JLabel();
jButtonImport = new javax.swing.JButton();
jButtonCancelSelection = new javax.swing.JButton();
jPanel3 = new javax.swing.JPanel();
jButtonCreateMap = new javax.swing.JButton();
jSeparator2 = new javax.swing.JSeparator();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Create Map - Open Traffic Simulation");
setIconImage(new AssetUtility().getLogo());
setPreferredSize(new java.awt.Dimension(800, 500));
setResizable(false);
jLabelCreateMap.setBackground(new java.awt.Color(227, 225, 225));
jLabelCreateMap.setFont(new java.awt.Font("Arial", 0, 30)); // NOI18N
jLabelCreateMap.setForeground(new java.awt.Color(30, 15, 42));
jLabelCreateMap.setText("Create Map");
jPanelUpper.setPreferredSize(new java.awt.Dimension(772, 150));
jLabelName.setFont(new java.awt.Font("Arial", 0, 15)); // NOI18N
jLabelName.setText("Name");
jTextFieldName.setFont(new java.awt.Font("Arial", 0, 15)); // NOI18N
jLabelLanes.setFont(new java.awt.Font("Arial", 0, 15)); // NOI18N
jLabelLanes.setText("Lanes (1-3)");
jTextFieldLanes.setFont(new java.awt.Font("Arial", 0, 15)); // NOI18N
jLabelSpeed.setFont(new java.awt.Font("Arial", 0, 15)); // NOI18N
jLabelSpeed.setText("Speed (10-99)");
jTextFieldSpeed.setFont(new java.awt.Font("Arial", 0, 15)); // NOI18N
jComboBoxType.setFont(new java.awt.Font("Arial", 0, 15)); // NOI18N
jComboBoxType.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Grid", "Spider", "Random" }));
jComboBoxType.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jComboBoxTypeActionPerformed(evt);
}
});
jTextFieldIteration.setFont(new java.awt.Font("Arial", 0, 15)); // NOI18N
jLabelIterations.setFont(new java.awt.Font("Arial", 0, 15)); // NOI18N
jLabelIterations.setText("Iterations (10-40)");
jLabelMaximumDistance.setFont(new java.awt.Font("Arial", 0, 15)); // NOI18N
jLabelMaximumDistance.setText("Max. Distance (40-80)");
jTextFieldMaximumDistance.setFont(new java.awt.Font("Arial", 0, 15)); // NOI18N
jTextFieldMinimumDistance.setFont(new java.awt.Font("Arial", 0, 15)); // NOI18N
jLabelMinimumDistance.setFont(new java.awt.Font("Arial", 0, 15)); // NOI18N
jLabelMinimumDistance.setText("Min. Distance (20-40)");
javax.swing.GroupLayout jPanelRandomLayout = new javax.swing.GroupLayout(jPanelRandom);
jPanelRandom.setLayout(jPanelRandomLayout);
jPanelRandomLayout.setHorizontalGroup(
jPanelRandomLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanelRandomLayout.createSequentialGroup()
.addGroup(jPanelRandomLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabelIterations)
.addComponent(jTextFieldIteration, javax.swing.GroupLayout.PREFERRED_SIZE, 160, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(30, 30, 30)
.addGroup(jPanelRandomLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabelMaximumDistance)
.addComponent(jTextFieldMaximumDistance, javax.swing.GroupLayout.PREFERRED_SIZE, 160, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(30, 30, 30)
.addGroup(jPanelRandomLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabelMinimumDistance)
.addComponent(jTextFieldMinimumDistance, javax.swing.GroupLayout.PREFERRED_SIZE, 160, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(24, 24, 24))
);
jPanelRandomLayout.setVerticalGroup(
jPanelRandomLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanelRandomLayout.createSequentialGroup()
.addComponent(jLabelMaximumDistance, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jTextFieldMaximumDistance, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanelRandomLayout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addGroup(jPanelRandomLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanelRandomLayout.createSequentialGroup()
.addComponent(jLabelMinimumDistance, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jTextFieldMinimumDistance, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanelRandomLayout.createSequentialGroup()
.addComponent(jLabelIterations)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jTextFieldIteration, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE))))
);
jTextFieldArmNumber.setFont(new java.awt.Font("Arial", 0, 15)); // NOI18N
jLabelArmNumber.setFont(new java.awt.Font("Arial", 0, 15)); // NOI18N
jLabelArmNumber.setText("Arm Number (3-6)");
jLabelCircleNumber.setFont(new java.awt.Font("Arial", 0, 15)); // NOI18N
jLabelCircleNumber.setText("Circle Number (2-6)");
jTextFieldCirleNumber.setFont(new java.awt.Font("Arial", 0, 15)); // NOI18N
jLabelSpaceRadius.setFont(new java.awt.Font("Arial", 0, 15)); // NOI18N
jLabelSpaceRadius.setText("Space Radius (20-80)");
jTextFieldSpaceRadius.setFont(new java.awt.Font("Arial", 0, 15)); // NOI18N
javax.swing.GroupLayout jPanelSpiderLayout = new javax.swing.GroupLayout(jPanelSpider);
jPanelSpider.setLayout(jPanelSpiderLayout);
jPanelSpiderLayout.setHorizontalGroup(
jPanelSpiderLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanelSpiderLayout.createSequentialGroup()
.addGroup(jPanelSpiderLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabelArmNumber)
.addComponent(jTextFieldArmNumber, javax.swing.GroupLayout.PREFERRED_SIZE, 160, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(30, 30, 30)
.addGroup(jPanelSpiderLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabelCircleNumber)
.addComponent(jTextFieldCirleNumber, javax.swing.GroupLayout.PREFERRED_SIZE, 160, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(30, 30, 30)
.addGroup(jPanelSpiderLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabelSpaceRadius)
.addComponent(jTextFieldSpaceRadius, javax.swing.GroupLayout.PREFERRED_SIZE, 160, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(26, 26, 26))
);
jPanelSpiderLayout.setVerticalGroup(
jPanelSpiderLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanelSpiderLayout.createSequentialGroup()
.addGroup(jPanelSpiderLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addGroup(jPanelSpiderLayout.createSequentialGroup()
.addComponent(jLabelSpaceRadius, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jTextFieldSpaceRadius, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanelSpiderLayout.createSequentialGroup()
.addComponent(jLabelCircleNumber, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jTextFieldCirleNumber, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanelSpiderLayout.createSequentialGroup()
.addComponent(jLabelArmNumber, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jTextFieldArmNumber, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGap(0, 0, Short.MAX_VALUE))
);
jLabelNameGridNumber.setFont(new java.awt.Font("Arial", 0, 15)); // NOI18N
jLabelNameGridNumber.setText("Grid Number (2-6)");
jTextFieldGridNumber.setFont(new java.awt.Font("Arial", 0, 15)); // NOI18N
jLabelNameGridLength.setFont(new java.awt.Font("Arial", 0, 15)); // NOI18N
jLabelNameGridLength.setText("Grid Length (30-80)");
jTextFieldGridLength.setFont(new java.awt.Font("Arial", 0, 15)); // NOI18N
javax.swing.GroupLayout jPanelGridLayout = new javax.swing.GroupLayout(jPanelGrid);
jPanelGrid.setLayout(jPanelGridLayout);
jPanelGridLayout.setHorizontalGroup(
jPanelGridLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanelGridLayout.createSequentialGroup()
.addGroup(jPanelGridLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabelNameGridNumber)
.addComponent(jTextFieldGridNumber, javax.swing.GroupLayout.PREFERRED_SIZE, 160, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(30, 30, 30)
.addGroup(jPanelGridLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabelNameGridLength)
.addComponent(jTextFieldGridLength, javax.swing.GroupLayout.PREFERRED_SIZE, 160, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(0, 0, Short.MAX_VALUE))
);
jPanelGridLayout.setVerticalGroup(
jPanelGridLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanelGridLayout.createSequentialGroup()
.addGroup(jPanelGridLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(jPanelGridLayout.createSequentialGroup()
.addComponent(jLabelNameGridLength, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jTextFieldGridLength, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanelGridLayout.createSequentialGroup()
.addComponent(jLabelNameGridNumber, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jTextFieldGridNumber, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
javax.swing.GroupLayout jPanelSelectionLayout = new javax.swing.GroupLayout(jPanelSelection);
jPanelSelection.setLayout(jPanelSelectionLayout);
jPanelSelectionLayout.setHorizontalGroup(
jPanelSelectionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanelRandom, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanelSpider, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanelGrid, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
jPanelSelectionLayout.setVerticalGroup(
jPanelSelectionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanelSelectionLayout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanelGrid, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanelSpider, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanelRandom, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jLabelType1.setFont(new java.awt.Font("Arial", 0, 15)); // NOI18N
jLabelType1.setText("Type");
javax.swing.GroupLayout jPanelUpperLayout = new javax.swing.GroupLayout(jPanelUpper);
jPanelUpper.setLayout(jPanelUpperLayout);
jPanelUpperLayout.setHorizontalGroup(
jPanelUpperLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanelUpperLayout.createSequentialGroup()
.addGap(1, 1, 1)
.addGroup(jPanelUpperLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabelName)
.addComponent(jTextFieldName, javax.swing.GroupLayout.PREFERRED_SIZE, 160, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabelType1)
.addComponent(jComboBoxType, javax.swing.GroupLayout.PREFERRED_SIZE, 160, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(30, 30, 30)
.addGroup(jPanelUpperLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanelUpperLayout.createSequentialGroup()
.addGroup(jPanelUpperLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabelLanes)
.addComponent(jTextFieldLanes, javax.swing.GroupLayout.PREFERRED_SIZE, 160, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(30, 30, 30)
.addGroup(jPanelUpperLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jTextFieldSpeed, javax.swing.GroupLayout.PREFERRED_SIZE, 160, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabelSpeed))
.addGap(1, 1, 1))
.addComponent(jPanelSelection, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
jPanelUpperLayout.setVerticalGroup(
jPanelUpperLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanelUpperLayout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanelUpperLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabelName)
.addComponent(jLabelLanes)
.addComponent(jLabelSpeed))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanelUpperLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextFieldName, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTextFieldLanes, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTextFieldSpeed, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanelUpperLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanelUpperLayout.createSequentialGroup()
.addGap(1, 1, 1)
.addComponent(jPanelSelection, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
.addContainerGap())
.addGroup(jPanelUpperLayout.createSequentialGroup()
.addGap(15, 15, 15)
.addComponent(jLabelType1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jComboBoxType, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
);
jLabelOr.setFont(new java.awt.Font("Arial", 0, 15)); // NOI18N
jLabelOr.setText("OR");
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(1, 1, 1)
.addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 326, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabelOr)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jSeparator3, javax.swing.GroupLayout.DEFAULT_SIZE, 359, Short.MAX_VALUE)
.addContainerGap())
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jSeparator1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jSeparator3, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabelOr, javax.swing.GroupLayout.Alignment.TRAILING)
);
jLabelCreateMap1.setBackground(new java.awt.Color(227, 225, 225));
jLabelCreateMap1.setFont(new java.awt.Font("Arial", 0, 30)); // NOI18N
jLabelCreateMap1.setForeground(new java.awt.Color(30, 15, 42));
jLabelCreateMap1.setText("Import Open Street Map");
jButtonFileChooser.setText("Choose File");
jButtonFileChooser.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonFileChooserActionPerformed(evt);
}
});
jLabelFileName.setFont(new java.awt.Font("Arial", 0, 15)); // NOI18N
jLabelFileName.setText("You haven't selected a map file.");
jButtonImport.setText("Import");
jButtonImport.setEnabled(false);
jButtonImport.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonImportActionPerformed(evt);
}
});
jButtonCancelSelection.setText("Reset");
jButtonCancelSelection.setEnabled(false);
jButtonCancelSelection.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonCancelSelectionActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabelCreateMap1)
.addComponent(jLabelFileName)
.addGroup(jPanel2Layout.createSequentialGroup()
.addComponent(jButtonFileChooser, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButtonImport, javax.swing.GroupLayout.PREFERRED_SIZE, 97, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(7, 7, 7)
.addComponent(jButtonCancelSelection, javax.swing.GroupLayout.PREFERRED_SIZE, 96, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGap(0, 610, Short.MAX_VALUE))
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addComponent(jLabelCreateMap1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabelFileName)
.addGap(7, 7, 7)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jButtonImport, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 36, Short.MAX_VALUE)
.addComponent(jButtonCancelSelection, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jButtonFileChooser, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
jPanel3.setLayout(jPanel3Layout);
jPanel3Layout.setHorizontalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 726, Short.MAX_VALUE)
);
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 20, Short.MAX_VALUE)
);
jButtonCreateMap.setText("Continue");
jButtonCreateMap.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonCreateMapActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(23, 23, 23)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanelUpper, javax.swing.GroupLayout.DEFAULT_SIZE, 1658, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createSequentialGroup()
.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(jButtonCreateMap, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabelCreateMap)
.addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, 717, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(0, 0, Short.MAX_VALUE)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(22, 22, 22)
.addComponent(jLabelCreateMap)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanelUpper, javax.swing.GroupLayout.PREFERRED_SIZE, 146, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, 9, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(2, 2, 2)
.addComponent(jButtonCreateMap, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(2, 2, 2)
.addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
pack();
setLocationRelativeTo(null);
}// </editor-fold>//GEN-END:initComponents
private void jComboBoxTypeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jComboBoxTypeActionPerformed
updateTypes();
}//GEN-LAST:event_jComboBoxTypeActionPerformed
public void createMap(){
String Options = "";
String pattern = "[0-9A-Za-z]*";
boolean isSuccess = false;
boolean isValid = true;
ArrayList<String> errorMessages = new ArrayList<String>();
Connector connector = new Connector(ConnectorType.CONNECTOR_NETGENERATE);
// Check file name
if (jTextFieldName.getText().length() < 1) {
errorMessages.add("Please enter map name!");
jTextFieldName.setBackground(Color.PINK);
isValid = false;
} else {
if (!jTextFieldName.getText().matches(pattern)) {
errorMessages.add("File name is not valid! Only letters and digits are allowed.");
jTextFieldName.setBackground(Color.PINK);
isValid = false;
} else {
netgenerate_file = jTextFieldName.getText();
jTextFieldName.setBackground(Color.WHITE);
}
}
// Check lane and speed
if (jTextFieldLanes.getText().length() < 1 || jTextFieldSpeed.getText().length() < 1) {
errorMessages.add("Please set all values!");
jTextFieldLanes.setBackground(Color.PINK);
jTextFieldSpeed.setBackground(Color.PINK);
isValid = false;
} else {
lane_num = Integer.parseInt(jTextFieldLanes.getText());
lane_speed = Double.parseDouble(jTextFieldSpeed.getText());
if (lane_num < 1 || lane_num > 3 || (jTextFieldLanes.getText() == null)) {
jTextFieldLanes.setBackground(Color.PINK);
errorMessages.add("Please check lane value!");
isValid = false;
} else {
jTextFieldLanes.setBackground(Color.WHITE);
}
if (lane_speed < 10 || lane_speed > 99 || (jTextFieldSpeed.getText() == null)) {
jTextFieldSpeed.setBackground(Color.PINK);
errorMessages.add("Please check speed value!");
isValid = false;
} else {
jTextFieldSpeed.setBackground(Color.WHITE);
}
}
// Check selected type
if (jComboBoxType.getSelectedIndex() == 0) {
// Grid
if (jTextFieldGridLength.getText().length() < 1 || jTextFieldGridNumber.getText().length() < 1) {
errorMessages.add("Please enter grid number and grid length values!");
isValid = false;
} else {
grid_num = Integer.parseInt(jTextFieldGridNumber.getText());
grid_length = Double.parseDouble(jTextFieldGridLength.getText());
if (grid_num < 2 || grid_num > 6 || (jTextFieldGridNumber.getText() == null)) {
jTextFieldGridNumber.setBackground(Color.PINK);
isValid = false;
} else {
jTextFieldGridNumber.setBackground(Color.WHITE);
}
if (grid_length < 30 || grid_length > 80 || (jTextFieldGridLength.getText() == null)) {
jTextFieldGridLength.setBackground(Color.PINK);
isValid = false;
} else {
jTextFieldGridLength.setBackground(Color.WHITE);
}
if (isValid) {
Options = "--grid";
Options += " --grid.number=" + grid_num;
Options += " --grid.length=" + grid_length;
Options += " -L=" + lane_num + " -S=" + lane_speed;
Options += " --output-file=" + connector.getOutputDir() + netgenerate_file + ".net.xml";
} else {
errorMessages.add("Please check grid number and grid length values!");
}
}
} else if (jComboBoxType.getSelectedIndex() == 1) {
// Spider
if (jTextFieldArmNumber.getText().length() < 1 || jTextFieldCirleNumber.getText().length() < 1 || jTextFieldSpaceRadius.getText().length() < 1) {
errorMessages.add("Please enter arm,circle and space radius number values!");
isValid = false;
} else {
arm_num = Integer.parseInt(jTextFieldArmNumber.getText());
circle_num = Integer.parseInt(jTextFieldCirleNumber.getText());
space_radius = Double.parseDouble(jTextFieldSpaceRadius.getText());
if (arm_num < 3 || arm_num > 6 || (jTextFieldArmNumber.getText() == null)) {
jTextFieldArmNumber.setBackground(Color.PINK);
isValid = false;
} else {
jTextFieldArmNumber.setBackground(Color.WHITE);
}
if (circle_num < 2 || circle_num > 6 || (jTextFieldCirleNumber.getText() == null)) {
jTextFieldCirleNumber.setBackground(Color.PINK);
isValid = false;
} else {
jTextFieldCirleNumber.setBackground(Color.WHITE);
}
if (space_radius < 20 || space_radius > 80 || (jTextFieldSpaceRadius.getText() == null)) {
jTextFieldSpaceRadius.setBackground(Color.PINK);
isValid = false;
} else {
jTextFieldSpaceRadius.setBackground(Color.WHITE);
}
if (isValid) {
Options = "--spider-net";
Options += " --spider-arm-number=" + arm_num;
Options += " --spider-circle-number=" + circle_num;
Options += " --spider-space-rad=" + space_radius;
Options += " -L=" + lane_num + " -S=" + lane_speed;
Options += " --output-file=" + connector.getOutputDir() + netgenerate_file + ".net.xml";
} else {
errorMessages.add("Please check arm,circle and space radius number values!");
}
}
} else if (jComboBoxType.getSelectedIndex() == 2) {
// Random
if (jTextFieldIteration.getText().length() < 1 || jTextFieldMaximumDistance.getText().length() < 1 || jTextFieldMinimumDistance.getText().length() < 1) {
errorMessages.add("Please enter iteration,minimum distance and maximum distance number values!");
isValid = false;
} else {
iteration_num = Integer.parseInt(jTextFieldIteration.getText());
max_distance = Integer.parseInt(jTextFieldMaximumDistance.getText());
min_distance = Integer.parseInt(jTextFieldMinimumDistance.getText());
if (iteration_num < 10 || iteration_num > 40 || (jTextFieldIteration.getText() == null)) {
jTextFieldIteration.setBackground(Color.PINK);
isValid = false;
} else {
jTextFieldIteration.setBackground(Color.WHITE);
}
if (max_distance < 40 || max_distance > 80 || (jTextFieldMaximumDistance.getText() == null)) {
jTextFieldMaximumDistance.setBackground(Color.PINK);
isValid = false;
} else {
jTextFieldMaximumDistance.setBackground(Color.WHITE);
}
if (min_distance < 20 || min_distance > 40 || (jTextFieldMinimumDistance.getText() == null)) {
jTextFieldMinimumDistance.setBackground(Color.PINK);
isValid = false;
} else {
jTextFieldMinimumDistance.setBackground(Color.WHITE);
}
if (isValid) {
Options = "--random-net";
Options += " --rand-iterations=" + iteration_num;
Options += " --rand-max-distance=" + max_distance;
Options += " --rand-min-distance=" + min_distance;
Options += " -L=" + lane_num + " -S=" + lane_speed;
Options += " --output-file=" + connector.getOutputDir() + netgenerate_file + ".net.xml";
} else {
errorMessages.add("Please check iteration,minimum distance and maximum distance number values!");
}
}
}
if (isValid) {
isSuccess = connector.runCommand(Options);
} else {
String errorMessage = "Please complete following errors!\n";
for (int i = 0; i < errorMessages.size(); i++) {
errorMessage += errorMessages.get(i) + "\n";
}
JOptionPane.showMessageDialog(null, errorMessage);
}
// Goto next screen
if (isSuccess) {
LightEditor.getInstance().networkFile = new Connector(ConnectorType.CONNECTOR_NETGENERATE).getOutputDir() + netgenerate_file + ".net.xml";
this.setVisible(false);
CreateSimulationFrame.getInstance().setVisible(true);
CreateSimulationFrame.getInstance().createJunctions();
} else {
if (isValid) {
JOptionPane.showMessageDialog(null, "The map creation has failed!");
}
}
}
private void jButtonCreateMapActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonCreateMapActionPerformed
createMap();
}//GEN-LAST:event_jButtonCreateMapActionPerformed
private void jButtonFileChooserActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonFileChooserActionPerformed
chooser = new JFileChooser();
chooser.setCurrentDirectory(new java.io.File("."));
chooser.setDialogTitle("Select OSM file");
FileFilter xmlFilter = new ExtensionFileFilterUtility("OSM File(*.osm.xml)", "osm.xml");
chooser.setFileFilter(xmlFilter);
chooser.addChoosableFileFilter(xmlFilter);
chooser.setAcceptAllFileFilterUsed(false);
if (chooser.showOpenDialog(chooser) == JFileChooser.APPROVE_OPTION) {
osmFile_path = chooser.getSelectedFile().getAbsolutePath();
jLabelFileName.setText("File: " + osmFile_path);
jButtonFileChooser.setEnabled(false);
jButtonImport.setEnabled(true);
jButtonCancelSelection.setEnabled(true);
} else {
//JOptionPane.showMessageDialog(null, "You haven't chosen an OSM file!");
}
}//GEN-LAST:event_jButtonFileChooserActionPerformed
private void jButtonCancelSelectionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonCancelSelectionActionPerformed
osmFile_path = "";
jLabelFileName.setText("You haven't selected a map file.");
jButtonFileChooser.setEnabled(true);
jButtonImport.setEnabled(false);
jButtonCancelSelection.setEnabled(false);
}//GEN-LAST:event_jButtonCancelSelectionActionPerformed
private void jButtonImportActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonImportActionPerformed
osmnet_file = Math.random() + "osm";
osmnet_file.replace(".", "");
String Options;
Connector connector = new Connector( ConnectorType.CONNECTOR_NETCONVERT);
Options = " --osm-files=" + osmFile_path;
Options += " -o=" + connector.getOutputDir() + osmnet_file + ".net.xml";
boolean isSuccess = connector.runCommand(Options);
// Goto next screen
if (isSuccess) {
netgenerate_file = osmnet_file;
LightEditor.getInstance().networkFile = new Connector(ConnectorType.CONNECTOR_NETGENERATE).getOutputDir() + netgenerate_file + ".net.xml";
this.setVisible(false);
CreateSimulationFrame.getInstance().setVisible(true);
} else {
JOptionPane.showMessageDialog(null, "The map creation has failed!");
}
}//GEN-LAST:event_jButtonImportActionPerformed
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(CreateMapFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(CreateMapFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(CreateMapFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(CreateMapFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new CreateMapFrame().setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton jButtonCancelSelection;
private javax.swing.JButton jButtonCreateMap;
private javax.swing.JButton jButtonFileChooser;
private javax.swing.JButton jButtonImport;
private javax.swing.JComboBox jComboBoxType;
private javax.swing.JLabel jLabelArmNumber;
private javax.swing.JLabel jLabelCircleNumber;
private javax.swing.JLabel jLabelCreateMap;
private javax.swing.JLabel jLabelCreateMap1;
private javax.swing.JLabel jLabelFileName;
private javax.swing.JLabel jLabelIterations;
private javax.swing.JLabel jLabelLanes;
private javax.swing.JLabel jLabelMaximumDistance;
private javax.swing.JLabel jLabelMinimumDistance;
private javax.swing.JLabel jLabelName;
private javax.swing.JLabel jLabelNameGridLength;
private javax.swing.JLabel jLabelNameGridNumber;
private javax.swing.JLabel jLabelOr;
private javax.swing.JLabel jLabelSpaceRadius;
private javax.swing.JLabel jLabelSpeed;
private javax.swing.JLabel jLabelType1;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanelGrid;
private javax.swing.JPanel jPanelRandom;
private javax.swing.JPanel jPanelSelection;
private javax.swing.JPanel jPanelSpider;
private javax.swing.JPanel jPanelUpper;
private javax.swing.JSeparator jSeparator1;
private javax.swing.JSeparator jSeparator2;
private javax.swing.JSeparator jSeparator3;
private javax.swing.JTextField jTextFieldArmNumber;
private javax.swing.JTextField jTextFieldCirleNumber;
private javax.swing.JTextField jTextFieldGridLength;
private javax.swing.JTextField jTextFieldGridNumber;
private javax.swing.JTextField jTextFieldIteration;
private javax.swing.JTextField jTextFieldLanes;
private javax.swing.JTextField jTextFieldMaximumDistance;
private javax.swing.JTextField jTextFieldMinimumDistance;
private javax.swing.JTextField jTextFieldName;
private javax.swing.JTextField jTextFieldSpaceRadius;
private javax.swing.JTextField jTextFieldSpeed;
// End of variables declaration//GEN-END:variables
}