📄 subpatternpanel.java
字号:
/*************************************************************************
This program is copyrighted. Please refer to COPYRIGHT.txt for the
copyright notice.
This file is part of JavaNNS.
JavaNNS is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
JavaNNS is distributed in the hope that it will be useful,
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 JavaNNS; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*************************************************************************/
/**
* Title: SubPatternPanel<p>
* Description: Panel for subpattern navigation and control<p>
* Copyright: Copyright (c) 2001<p>
* Company: WSI<p>
* @author Igor Fischer
* @version
*/
package javanns;
import javax.swing.* ;
import java.awt.* ;
import java.awt.event.* ;
public class SubPatternPanel
extends JPanel
implements ActionListener, NetworkListener {
public static final int SET_TRAINING = 1;
public static final int SET_SHOW = 2;
public static final int SET_TRAINING_SHOW = SET_TRAINING | SET_SHOW;
Snns snns;
MasterControl master;
Network network;
KernelInterface.KernelPatternInfo kpi;
JCheckBox cbShuffle;
DimensionPanel dp1, dp2;
class DimensionPanel extends JPanel {
FlatButton bFirst, bPrev, bNext, bLast;
JLabel lSize = new JLabel("Size", JLabel.CENTER);
JLabel lStep = new JLabel("Step", JLabel.CENTER);
JLabel lPosition = new JLabel("Position", JLabel.CENTER);
JLabel lTotal = new JLabel("Total", JLabel.CENTER);
JLabel lInput = new JLabel("Input: ", JLabel.LEFT);
JLabel lOutput = new JLabel("Output: ", JLabel.LEFT);
JTextField tSizeIn = new JTextField("1", 4);
JTextField tSizeOut = new JTextField("1", 4);
JTextField tStepIn = new JTextField("1", 4);
JTextField tStepOut = new JTextField("1", 4);
JTextField tPositionIn = new JTextField("1", 4);
JTextField tPositionOut = new JTextField("1", 4);
JTextField tTotalIn = new JTextField("1", 4);
JTextField tTotalOut = new JTextField("1", 4);
public DimensionPanel(int dimension) {
setBorder(
BorderFactory.createTitledBorder(
BorderFactory.createEtchedBorder(), "Dimension " + dimension
)
);
Color bgd = getBackground();
tSizeIn.setHorizontalAlignment(JTextField.RIGHT);
tSizeOut.setHorizontalAlignment(JTextField.RIGHT);
tStepIn.setHorizontalAlignment(JTextField.RIGHT);
tStepOut.setHorizontalAlignment(JTextField.RIGHT);
tPositionIn.setEditable(false);
tPositionIn.setBackground(bgd);
tPositionIn.setHorizontalAlignment(JTextField.CENTER);
tPositionOut.setEditable(false);
tPositionOut.setBackground(bgd);
tPositionOut.setHorizontalAlignment(JTextField.CENTER);
tTotalIn.setEditable(false);
tTotalIn.setBackground(bgd);
tTotalIn.setHorizontalAlignment(JTextField.CENTER);
tTotalOut.setEditable(false);
tTotalOut.setBackground(bgd);
tTotalOut.setHorizontalAlignment(JTextField.CENTER);
bFirst = new FlatButton(snns.icons.getIcon("leftEndArrow.gif", "First"));
bFirst.setToolTipText("Show first subpattern of the current pattern");
bPrev = new FlatButton(snns.icons.getIcon("leftArrow.gif", "Previous"));
bPrev.setToolTipText("Show previous subpattern of the current pattern");
bNext = new FlatButton(snns.icons.getIcon("rightArrow.gif", "Next"));
bNext.setToolTipText("Show next subpattern of the current pattern");
bLast = new FlatButton(snns.icons.getIcon("rightEndArrow.gif", "Last"));
bLast.setToolTipText("Show last subpattern of the current pattern");
GridBagLayout gbl = new GridBagLayout();
GridBagConstraints gbc = new GridBagConstraints();
setLayout(gbl);
Insets ins = new Insets(3, 3, 2, 2);
Insets bIns = new Insets(0, 0, 0, 0);
gbc.fill = gbc.HORIZONTAL;
gbc.insets = ins;
gbc.gridy = 0;
gbc.gridx = 1;
// Title line:
gbl.setConstraints(lSize, gbc);
add(lSize);
gbc.gridx++;
gbl.setConstraints(lStep, gbc);
add(lStep);
gbc.gridx+=3;
gbl.setConstraints(lPosition, gbc);
add(lPosition);
gbc.gridx+=3;
gbl.setConstraints(lTotal, gbc);
add(lTotal);
gbc.gridx = 0;
gbc.gridy++;
// Input line:
gbl.setConstraints(lInput, gbc);
add(lInput);
gbc.gridx++;
gbl.setConstraints(tSizeIn, gbc);
add(tSizeIn);
gbc.gridx++;
gbl.setConstraints(tStepIn, gbc);
add(tStepIn);
gbc.gridx++;
gbc.gridheight = 2;
gbc.insets = new Insets(0, 15, 0, 0);
gbl.setConstraints(bFirst, gbc);
add(bFirst);
gbc.gridx++;
gbc.insets = bIns;
gbl.setConstraints(bPrev, gbc);
add(bPrev);
gbc.gridx++;
gbc.gridheight = 1;
gbc.insets = ins;
gbl.setConstraints(tPositionIn, gbc);
add(tPositionIn);
gbc.gridx++;
gbc.gridheight = 2;
gbc.insets = bIns;
gbl.setConstraints(bNext, gbc);
add(bNext);
gbc.gridx++;
gbc.insets = new Insets(0, 0, 0, 15);
gbl.setConstraints(bLast, gbc);
add(bLast);
gbc.gridx++;
gbc.gridheight = 1;
gbc.insets = ins;
gbl.setConstraints(tTotalIn, gbc);
add(tTotalIn);
gbc.gridx = 0;
// Output line:
gbc.gridy++;
gbl.setConstraints(lOutput, gbc);
add(lOutput);
gbc.gridx++;
gbl.setConstraints(tSizeOut, gbc);
add(tSizeOut);
gbc.gridx++;
gbl.setConstraints(tStepOut, gbc);
add(tStepOut);
gbc.gridx += 3;
gbl.setConstraints(tPositionOut, gbc);
add(tPositionOut);
gbc.gridx += 3;
gbl.setConstraints(tTotalOut, gbc);
add(tTotalOut);
}
/**
* Shows or hides input or output fields according to
* passed parameters.
*
* @param in flag controling the visibility of the input fields
* @param out flag controling the visibility of the output fields
*/
public void updateVisibility(boolean in, boolean out) {
lInput.setVisible(in);
lOutput.setVisible(out);
tSizeIn.setVisible(in);
tSizeOut.setVisible(out);
tStepIn.setVisible(in);
tStepOut.setVisible(out);
tPositionIn.setVisible(in);
tPositionOut.setVisible(out);
tTotalIn.setVisible(in);
tTotalOut.setVisible(out);
}
}
/**
* Constructs a panel for navigating and controlling subpatterns.
*
* @param master master control panel embedding this panel
*/
public SubPatternPanel(MasterControl master) {
this.master = master;
snns = master.snns;
network = master.network;
network.addListener( this );
kpi = network.getPatInfo();
GridBagLayout gbl = new GridBagLayout();
GridBagConstraints gbc = new GridBagConstraints();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -