/* * lilgpSetup Utility for generating lilgp parameter files * version 1.0 * 12-May-97 * * Copyright (C) 1997 Michigan State University * * This program is free software; you can redistribute it and/or * modify it under the terms of version 2 of the GNU General * Public License as published by the Free Software Foundation. * * 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 General Public License for more details. * * You should have received a copy of the GNU General Public * License along with this program; if not, write to: * * Free Software Foundation, Inc. * 59 Temple Place - Suite 330 * Boston, MA * 02111-1307 * USA. * * Ryan Shoemaker shoema16@cps.msu.edu * Dr. Bill Punch punch@cps.msu.edu * * Computer Science Department * A-714 Wells Hall * Michigan State University * East Lansing, Michigan 48824 * USA * */ import java.awt.*; /** * This panel contains a TitlePanel and a GridBagPanel * that accepts input for the following lilgp parameters: *
* * * @see TitlePanel * @see GridBagPanel */ class GeneralPanel extends Panel { private TitlePanel tp = new TitlePanel("General Parameters"); private GridBagPanel fip = new GridBagPanel(); private static TextField max_gen = new TextField(10); private static TextField pop_size = new TextField(10); private static TextField rand_seed = new TextField(lilgpSetup.params.getProp("random_seed"), 10); /** * Add each of the UI components needed to accept input. * * @see GridBagPanel#addComponent */ public GeneralPanel() { setLayout(new BorderLayout()); // fill-in panel for parameters fip.setBackground(Color.white); fip.addComponent(new ClickableLabel("max_generations"), 0, 0, 1, 1, 0, 0, GridBagConstraints.NONE, GridBagConstraints.WEST); fip.addComponent(max_gen, 1, 0, 1, 1, 0, 0, GridBagConstraints.NONE, GridBagConstraints.CENTER); fip.addComponent(new ClickableLabel("pop_size"), 0, 1, 1, 1, 0, 0, GridBagConstraints.NONE, GridBagConstraints.WEST); fip.addComponent(pop_size, 1, 1, 1, 1, 0, 0, GridBagConstraints.NONE, GridBagConstraints.CENTER); fip.addComponent(new ClickableLabel("random_seed"), 0, 2, 1, 1, 0, 0, GridBagConstraints.NONE, GridBagConstraints.WEST); fip.addComponent(rand_seed, 1, 2, 1, 1, 0, 0, GridBagConstraints.NONE, GridBagConstraints.CENTER); // finally, add the two panels and show them add("North", tp); add("Center", fip); show(); } /** * Collect the contents of each UI component and store it in the * ParameterDB. * * @see ParameterDB */ public static void flushParameters() { String tmp_str; // collect the parameters // only add them to the database if they contain data // if they don't contain any data, then delete any old // values left in the database. tmp_str = (max_gen.getText()).trim(); if ( tmp_str.length() != 0 ) lilgpSetup.params.addToDB("max_generations", tmp_str); else lilgpSetup.params.delFromDB("max_generations"); tmp_str = (pop_size.getText()).trim(); if ( tmp_str.length() != 0 ) lilgpSetup.params.addToDB("pop_size", tmp_str); else lilgpSetup.params.delFromDB("pop_size"); tmp_str = (rand_seed.getText()).trim(); if ( tmp_str.length() != 0 ) lilgpSetup.params.addToDB("random_seed", tmp_str); else lilgpSetup.params.delFromDB("random_seed"); } /** * Trap TextField events and send the focus to the * next field on the panel. */ public boolean action(Event event, Object arg) { if (event.target == max_gen) { pop_size.requestFocus(); return true; } else if (event.target == pop_size) { rand_seed.requestFocus(); return true; } else if (event.target == rand_seed) { max_gen.requestFocus(); return true; } return super.action(event, arg); } /** * This method is responsible for loading parameters onto the GeneralPanel * after the user opens a parameter file. * */ public static void loadParams() { String s = lilgpSetup.params.getProp("max_generations"); if (s != null) { max_gen.setText(s); } else { max_gen.setText(""); } s = lilgpSetup.params.getProp("pop_size"); if (s != null) { pop_size.setText(s); } else { pop_size.setText(""); } s = lilgpSetup.params.getProp("random_seed"); if (s != null) { rand_seed.setText(s); } else { rand_seed.setText(""); } } }