IcanGui
Class GuiIcanDataPly

java.lang.Object
  extended by IcanGui.GuiHierarchy
      extended by IcanGui.GuiWindow
          extended by IcanGui.GuiIcanDataPly
All Implemented Interfaces:
java.awt.event.ActionListener, java.awt.event.FocusListener, java.awt.event.KeyListener, java.util.EventListener

public class GuiIcanDataPly
extends GuiWindow
implements java.awt.event.ActionListener, java.awt.event.KeyListener, java.awt.event.FocusListener

Encapsulate the behavior of GUI for ICAN/JAVA data entry of laminate/ply data.

Since:
1.0;
Version:
1.1.17;
Updated by Louis Handler on Feb 24, 2011, 14:53 EST (1.1.17).
Updated by Louis Handler on Aug 8, 2006, 14:25 EDT (1.1.11).
Updated by Louis Handler on Jul 3, 2006, 10:26 EDT (1.1.8).
Updated by Louis Handler on Dec 28, 2005, 13:07 EST (1.1.6).
Updated by Louis Handler on Jul 15, 2005, 09:02 EDT (1.1.5).
Updated by Louis Handler on May 16, 2005, 08:38 EDT (1.1.4).
Updated by Louis Handler on May 6, 2005, 10:00 EDT (1.1.2).
Updated by Louis Handler on Apr 25, 2005, 12:06 EDT (1.1.0).
Updated by Louis Handler on Oct 28, 2004, 11:53 EDT (1.0.10).
Updated by Louis Handler on Oct 7, 2004, 08:50 EDT (1.0.7).
Updated by Louis Handler on Apr 26, 2004, 15:08 EDT (1.0.6).
Updated by Louis Handler on Sep 9, 2003, 13:22 EDT.
Updated by Louis Handler on Sep 8, 2003, 08:31 EDT.
Updated by Louis Handler on Aug 27, 2002, 10:42 EDT.
Updated by Louis Handler on Aug 27, 2002, 09:33 EDT.
Updated by Louis Handler on Aug 26, 2002, 09:27 EDT.
Updated by Louis Handler on Jul 1, 2002, 15:13 EDT.
Updated by Louis Handler on Jun 6, 2000, 10:09 EDT.
Updated by Louis Handler on Mar 28, 2000, 12:49 EST.
Updated by Louis Handler on Feb 25, 2000, 10:01 EST.
Updated by Louis Handler on Nov 24, 1999, 11:52 EST.
Updated by Louis Handler on Dec 31, 1998, 13:34 EST.
Updated by Louis Handler on Dec 11, 1998, 11:19 EST.
Updated by Louis Handler on Nov 23, 1998, 10:36 EST.
Updated by Louis Handler on Nov 6, 1998, 08:46 EST.
Updated by Louis Handler on Aug 28, 1998, 13:36 EDT.
Updated by Louis Handler on Aug 18, 1998, 08:17 EDT.
Updated by Louis Handler on Jul 27, 1998, 16:14 EDT.
Updated by Matthew Der on Jul 15, 1998.
Updated by Matthew Der on Jun 24, 1998.
Updated by Louis Handler on Jun 18, 1998.
Author:
Louis Handler
See Also:
GuiWindow

Nested Class Summary
(package private)  class GuiIcanDataPly.Madapter
          Mouse Adapter Inner Class
 
Field Summary
private static java.lang.String[] buttonLabels
          Labels to display on action buttons.
private  java.awt.Button[] buttons
          Action buttons.
private  java.awt.TextField compColor
          Currently highlighted TextField into which the chosen material ID will be displayed.
private  IcanDataSet data
          ICAN/JAVA data set.
private static int DEFAULT_F_SLICES
          Default number of Fiber or Particle substructure slices.
private static int DEFAULT_I_SLICES
          Default number of Interphase substructure slices.
private static int DEFAULT_M_SLICES
          Default number of Matrix or Binder substructure slices.
private static double EPSR
          Relative error allowed in symmetric computation to determine number of repetitions required to obtain desired thickness.
private  boolean firstRun
          Variable to test for the first time the frame is displayed.
private  java.awt.GridBagConstraints gbc
          GridBag constraints.
private  java.awt.GridBagLayout gbl
          GridBag Layout manager.
private  GuiIcanDataSlice gids
          Substructure screen class to be instantiated to enter substructure data.
private static int iAcceptP
          Accept Button will verify the data and complete the processing of Ply data.
private static int iAddLineP
          "Add a Ply" Button will add a line on which to enter more Ply data.
private static int iCancel
          Cancel Button will exit this screen discarding any data entered.
private static int iChooseP
          "Choose a Material" Button will display a list of Matrix or Binder material codes entered.
private static int iClear
          Clear Button will clear data entry fields.
private  int iData
          The data type Index of the Component with focus.
private static int iDelLineP
          "Remove the last line of Ply(s)" Button will remove the last line of Ply data.
private static int iDelUntilP
          "Remove Ply(s)" Button will remove Ply data until the last Ply ID is the specified value.
private static int iExitP
          Exit Button will exit the entire program.
private static int iHelpP
          Help Button will display a set of information.
private  int iPlys
          The ply/line Index of the Component with focus.
private static int iRepeatUntilP
          "Repeat Until" Button will repeat the Ply data in the original order until the specified Ply ID is reached.
private static int iSymmetricP
          Symmetric Button will repeat the Ply data in reverse order to obtain a symmetric result.
private static int iSymmetricThickP
          "Symmetric to Thickness" Button will repeat the Ply data in the original order until half way to the thickness specified.
private static int jDefect
          Subscript of defect Component.
private static int jMID
          Subscript of Composite Material Component.
private static int jPID
          Subscript of Ply Range Component.
private static int jThickness
          Subscript of thickness Component.
private  java.awt.Label[] labelPly
          Ply data column heading Labels.
private  int lastPlyNumber
          Last ply number entered into Ply data.
private  int maxPlys
          Maximum number of Plys in Ply data.
private  MaterialDataBankSet mdb
          Material DataBank data set.
private  GuiIcanDataPly.Madapter myMadapter
          Mouse Adapter to handle mouse entering the window for the first time and right clicks.
private static int nButtons
          Number of action buttons.
private static int nMIFIM
          Number of types of slices to store in the substructure table.
private  int nPlys
          Number of Plys in Ply data.
private  java.awt.Color oldColorB
          Old background color used to reset highlighted background color.
private  java.awt.Color oldColorF
          Old foreground color used to reset highlighted foreground color.
private static double ONE
          The number one.
private  java.awt.Panel panelFrame
          The Panel that contains the data to be displayed within a scrolling frame.
private  java.awt.Panel panelPly
          Panel containing Ply data.
private  java.awt.Component[][] plyData
          Component array for Ply data.
private  java.awt.Checkbox[] plyDefect
          Checkbox denoting whether or not there is a defect for the corresponding Ply(s).
private static java.lang.String[] plyHeadings
          Ply data column headings.
private  java.awt.TextField[] plyMID
          Material ID may be either a non-Fiber, non-Particle, entry in the Material DataBank or a composite material ID which matches the value on the composite Material System input form.
private  java.awt.TextField[] plyPID
          Ply ID contains an integer or range of integers, separated by a dash (-), indicating the applicable ply(s).
private  SubstructureItem[][] plySubs
          Array of substructure data containing the number of slices for matrix, interphase, fiber or particle.
private  java.awt.Button[][] plySubstructure
          Array of buttons used to modify substructure data and display the number of slices in the substructure.
private  java.awt.TextField[] plyTcure
          Cure temperature.
private  java.awt.TextField[] plyTheta
          Ply orientation angle from the x axis in degrees.
private  java.awt.TextField[] plyThickness
          Thickness of each Ply in the range of Ply ID's specified.
private  java.awt.Component saveCompFocus
          Current Component with focus.
private  java.awt.ScrollPane scrollFrame
          The scrolling frame in which the data is displayed.
private static java.lang.String[] sPSs
          Strings used to print either primary or secondary material data.
private  java.lang.String[] subDefect
          List of slice/subslice ID's with defects.
private  SubsliceItem[] subsliceItems
          List of SubsliceItem's containing slice ID's to be subsliced and numbers of subslices per slice.
private  java.awt.Label theTitle
          Label containing the description/title of the ICAN/JAVA run.
private  PlyListItem thisPly
          Local Ply Item before adding to data set.
private  SubstructureItem thisSlice
          Local Substructure Item before adding to data set.
 
Fields inherited from class IcanGui.GuiWindow
frameTitle, whatAmI, windowFrame
 
Fields inherited from class IcanGui.GuiHierarchy
IDO_ICAN_DATA, IDO_ICAN_DATA_BOOLEANS, IDO_ICAN_DATA_DAMPING, IDO_ICAN_DATA_IMPACT, IDO_ICAN_DATA_LOADS, IDO_ICAN_DATA_MATERIAL, IDO_ICAN_DATA_OUTPUTS, IDO_ICAN_DATA_PLOT_IMPACT, IDO_ICAN_DATA_PLOTPL, IDO_ICAN_DATA_PLY, IDO_ICAN_DATA_PROCESS, IDO_ICAN_DATA_REACTION, IDO_ICAN_DATA_SLICE, IDO_ICAN_DATA_SLICE_TABLE, IDO_ICAN_DATA_VVI, IDO_ICAN_DATA_VVR, IDO_ICAN_ELECTRICAL_CYCLIC_LOADS, IDO_ICAN_ELECTRICAL_STATIC_LOADS, IDO_ICAN_EXPERT, IDO_ICAN_HYGRAL_CYCLIC_LOADS, IDO_ICAN_HYGRAL_STATIC_LOADS, IDO_ICAN_MECH_CYCLIC_LOADS, IDO_ICAN_MECH_STATIC_DISPLACEMENTS, IDO_ICAN_MECH_STATIC_LOADS, IDO_ICAN_MORE_LOADS, IDO_ICAN_PROMPT, IDO_ICAN_RATE_LOADS, IDO_ICAN_THERMAL_CYCLIC_LOADS, IDO_ICAN_THERMAL_STATIC_LOADS, IDO_MAIN, IDO_MDB_DATA_MFIM, IDO_MDB_DATA_START, IDO_MDB_PROMPT, IDO_MSG_DATA, NDO
 
Constructor Summary
GuiIcanDataPly()
          Constructor creates window to display buttons and text entry fields.
 
Method Summary
private  boolean acceptOnePly(int jPlys)
          Check whether this ply data is valid.
private  boolean acceptPlys()
          Check whether ply/laminate data is valid.
 void actionPerformed(java.awt.event.ActionEvent evt)
          Detect Action Events and process accordingly.
private  void addIcanDataPly()
          Add a ply to the laminate data window.
private  void addRepeat(int nEnd)
          Add repeated ply data to the laminate data window.
private  void addSymmetric()
          Add symmetric ply data to the laminate data window.
private  void addSymmetricThick(double end)
          Add symmetric ply data to the laminate data window until total laminate thickness is reached.
 void changeGuiUnits()
          Change units on GUI for this class.
private  void delIcanDataPly()
          Remove last ply from the laminate data window.
private  void delIcanDataPly(int iEnd)
          Remove plys from the laminate data window until the specified ending Ply ID is the ending ply ID.
 void enableButtons()
          Enable buttons according to the number of plys and whether material data is defined to "Choose".
private  void enableOnePlySubstructure(int iPlys)
          Check whether this ply data is able to be substructured and, if so, enable corresponding substructuring buttons.
 void focusGained(java.awt.event.FocusEvent evt)
          Listens for Events when a component gains focus.
 void focusLost(java.awt.event.FocusEvent evt)
          Listens for Events when a component loses focus.
 boolean getCompositeSubstructure(int jPlys, int iPS, int idbF, int idbM, int idbI, double kF, double kI, double kV, java.lang.String plyMaterialID)
          Get Composite Material System component data and set up for Substructuring.
private  int getLastPlyNumber()
          Get last ply number entered.
private  java.lang.String getMdbFileName()
          Display file dialog and get Material DataBank input data filename.
 java.lang.String getName()
          Get class name.
private  int[][] getPIDs()
          Obtain an array of ply ID's, checking for valid numbers or ranges.
private  int[] getPIDs(int jPlys)
          Obtain an array of ply ID's, checking for valid numbers or ranges.
private  double getThickness()
          Compute total laminate thickness.
 void helpMe()
          Display help message.
 void helpMe(java.awt.Component target)
          Display help message for a specified component.
protected  void initMe()
          Create window to display buttons and text entry fields.
 void keyPressed(java.awt.event.KeyEvent evt)
          Makes sure that keys are not processed twice.
 void keyReleased(java.awt.event.KeyEvent evt)
          Detects when the following keys are released Tab, up arrow, down arrow, enter, shift+tab, alt+right, alt+left, F1
 void keyTyped(java.awt.event.KeyEvent evt)
          Does Nothing
 void presetData()
          Set title and other ICAN/JAVA data and enable buttons.
private  void prtln(java.awt.Component cFocus)
          Print component for testing purposes.
 void saveTheFocus(java.awt.Component tFocus)
          Save the focus for a text area to be requested at a later time.
 void saveTheFocus(int iPlys, int iData)
          Save the focus for a text area to be requested at a later time.
private  void setClearData()
          Clear text and boolean (Checkbox) data entry fields.
private  void setColor()
          Determine next location to store chosen Material Code and highlight it.
 void setCompFocus()
          Set the desired focus to some component, set the color for nearby blank material ID, make the component visible by scrolling to it, and request the focus to the desired component.
 void setCompFocus(java.awt.Component tFocus)
          Make the specified component visible by scrolling to it, set the color for nearby blank material ID, and set the focus to the desired component.
 void setSubstructureButton(int jPlys, java.lang.String selectPlys, java.lang.String selectSlices, int iPS, int[] nsubMIFIM, SubsliceItem[] subsliceItems, java.lang.String[] subDefect)
          Store numbers of substructure slices of various types (Fiber, Interphase, Matrix) from which the plySubstructure Label is set.
 boolean subStructureIt(int jPlys, int iPS)
          Get all Material data and Ply data to do substructuring for this ply.
private  void wherePutMaterialCode()
          Determine location to store chosen Material Code.
 
Methods inherited from class IcanGui.GuiWindow
addGB, askExit, askQuestion, showMessageInfo
 
Methods inherited from class IcanGui.GuiHierarchy
changeAllGuiUnits, exitGui, getCurrent, getFrame, getFrame, getGuiWindowClass, getGuiWindowClass, hideMe, initHierarchy, setCurrent, setNextUp, showMe
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

data

private IcanDataSet data
ICAN/JAVA data set.


mdb

private MaterialDataBankSet mdb
Material DataBank data set.


thisPly

private PlyListItem thisPly
Local Ply Item before adding to data set.


thisSlice

private SubstructureItem thisSlice
Local Substructure Item before adding to data set.


panelPly

private java.awt.Panel panelPly
Panel containing Ply data.


theTitle

private java.awt.Label theTitle
Label containing the description/title of the ICAN/JAVA run.


gbl

private java.awt.GridBagLayout gbl
GridBag Layout manager.


gbc

private java.awt.GridBagConstraints gbc
GridBag constraints.


nPlys

private int nPlys
Number of Plys in Ply data.


maxPlys

private int maxPlys
Maximum number of Plys in Ply data.


plyPID

private java.awt.TextField[] plyPID
Ply ID contains an integer or range of integers, separated by a dash (-), indicating the applicable ply(s). The numbers must be entered sequentially, starting at 1.


plyMID

private java.awt.TextField[] plyMID
Material ID may be either a non-Fiber, non-Particle, entry in the Material DataBank or a composite material ID which matches the value on the composite Material System input form. A composite material ID must be different from values in the Material DataBank. The material ID must be alphanumeric and does not have to be numeric. The material ID should be an acronym meaningful to the user.


plyTcure

private java.awt.TextField[] plyTcure
Cure temperature.


plyTheta

private java.awt.TextField[] plyTheta
Ply orientation angle from the x axis in degrees.


plyThickness

private java.awt.TextField[] plyThickness
Thickness of each Ply in the range of Ply ID's specified.


plySubstructure

private java.awt.Button[][] plySubstructure
Array of buttons used to modify substructure data and display the number of slices in the substructure. Zero is used to indicate no substructure. Otherwise, it's the number of slices for a single fiber in the ply. One is used to indicate that each fiber across the ply is treated as a separate slice. Any number above one may be adjusted so that there are an integral number of slices comprised entirely of matrix (or binder); an integral number of slices comprised entirely of interphase and matrix (or binder); an integral number of slices containing fibers (or particles), interphase, and matrix (or binder). The array is doubly dimensioned because there is a button for each ply's primary data and secondary data.


nMIFIM

private static final int nMIFIM
Number of types of slices to store in the substructure table. The types are:
  1. bottom matrix-only,
  2. bottom interphase-only,
  3. fiber or particle,
  4. top interphase-only,
  5. top matrix-only.

See Also:
Constant Field Values

plySubs

private SubstructureItem[][] plySubs
Array of substructure data containing the number of slices for matrix, interphase, fiber or particle. The array is doubly dimensioned because there is an item for each ply's primary data and secondary data.


plyDefect

private java.awt.Checkbox[] plyDefect
Checkbox denoting whether or not there is a defect for the corresponding Ply(s).


subDefect

private java.lang.String[] subDefect
List of slice/subslice ID's with defects.


plyData

private java.awt.Component[][] plyData
Component array for Ply data.


plyHeadings

private static final java.lang.String[] plyHeadings
Ply data column headings.


jPID

private static final int jPID
Subscript of Ply Range Component.

See Also:
Constant Field Values

jMID

private static final int jMID
Subscript of Composite Material Component.

See Also:
Constant Field Values

jThickness

private static final int jThickness
Subscript of thickness Component.

See Also:
Constant Field Values

jDefect

private static final int jDefect
Subscript of defect Component.

See Also:
Constant Field Values

labelPly

private java.awt.Label[] labelPly
Ply data column heading Labels.


compColor

private java.awt.TextField compColor
Currently highlighted TextField into which the chosen material ID will be displayed.


oldColorB

private java.awt.Color oldColorB
Old background color used to reset highlighted background color.


oldColorF

private java.awt.Color oldColorF
Old foreground color used to reset highlighted foreground color.


lastPlyNumber

private int lastPlyNumber
Last ply number entered into Ply data.


iAcceptP

private static final int iAcceptP
Accept Button will verify the data and complete the processing of Ply data.

See Also:
Constant Field Values

iAddLineP

private static final int iAddLineP
"Add a Ply" Button will add a line on which to enter more Ply data.

See Also:
Constant Field Values

iCancel

private static final int iCancel
Cancel Button will exit this screen discarding any data entered.

See Also:
Constant Field Values

iChooseP

private static final int iChooseP
"Choose a Material" Button will display a list of Matrix or Binder material codes entered. The user may choose one to use. The new material code will be put into the text field highlighted in yellow (or the closest available color).

See Also:
Constant Field Values

iClear

private static final int iClear
Clear Button will clear data entry fields.

See Also:
Constant Field Values

iDelLineP

private static final int iDelLineP
"Remove the last line of Ply(s)" Button will remove the last line of Ply data.

See Also:
Constant Field Values

iDelUntilP

private static final int iDelUntilP
"Remove Ply(s)" Button will remove Ply data until the last Ply ID is the specified value.

See Also:
Constant Field Values

iExitP

private static final int iExitP
Exit Button will exit the entire program. To exit just this screen, see Accept or Cancel.

See Also:
Constant Field Values

iHelpP

private static final int iHelpP
Help Button will display a set of information.

See Also:
Constant Field Values

iRepeatUntilP

private static final int iRepeatUntilP
"Repeat Until" Button will repeat the Ply data in the original order until the specified Ply ID is reached.

See Also:
Constant Field Values

iSymmetricP

private static final int iSymmetricP
Symmetric Button will repeat the Ply data in reverse order to obtain a symmetric result.

See Also:
Constant Field Values

iSymmetricThickP

private static final int iSymmetricThickP
"Symmetric to Thickness" Button will repeat the Ply data in the original order until half way to the thickness specified. It then will repeat the result in reverse order to obtain a symmetric result.

See Also:
Constant Field Values

buttonLabels

private static final java.lang.String[] buttonLabels
Labels to display on action buttons.


nButtons

private static final int nButtons
Number of action buttons.


buttons

private java.awt.Button[] buttons
Action buttons.


scrollFrame

private java.awt.ScrollPane scrollFrame
The scrolling frame in which the data is displayed.


panelFrame

private java.awt.Panel panelFrame
The Panel that contains the data to be displayed within a scrolling frame.


myMadapter

private GuiIcanDataPly.Madapter myMadapter
Mouse Adapter to handle mouse entering the window for the first time and right clicks.


EPSR

private static final double EPSR
Relative error allowed in symmetric computation to determine number of repetitions required to obtain desired thickness.

See Also:
Constant Field Values

gids

private GuiIcanDataSlice gids
Substructure screen class to be instantiated to enter substructure data.


sPSs

private static final java.lang.String[] sPSs
Strings used to print either primary or secondary material data. Beginning text of substructure buttons.


DEFAULT_F_SLICES

private static final int DEFAULT_F_SLICES
Default number of Fiber or Particle substructure slices.

See Also:
Constant Field Values

DEFAULT_I_SLICES

private static final int DEFAULT_I_SLICES
Default number of Interphase substructure slices.

See Also:
Constant Field Values

DEFAULT_M_SLICES

private static final int DEFAULT_M_SLICES
Default number of Matrix or Binder substructure slices.

See Also:
Constant Field Values

subsliceItems

private SubsliceItem[] subsliceItems
List of SubsliceItem's containing slice ID's to be subsliced and numbers of subslices per slice.


firstRun

private boolean firstRun
Variable to test for the first time the frame is displayed. Used to set focus on entry.


saveCompFocus

private java.awt.Component saveCompFocus
Current Component with focus.


iPlys

private int iPlys
The ply/line Index of the Component with focus.


iData

private int iData
The data type Index of the Component with focus.


ONE

private static final double ONE
The number one.

See Also:
Constant Field Values
Constructor Detail

GuiIcanDataPly

public GuiIcanDataPly()
Constructor creates window to display buttons and text entry fields.

Method Detail

initMe

protected void initMe()
Create window to display buttons and text entry fields.

Specified by:
initMe in class GuiWindow

addIcanDataPly

private void addIcanDataPly()
Add a ply to the laminate data window.


enableButtons

public void enableButtons()
Enable buttons according to the number of plys and whether material data is defined to "Choose". Delete buttons are disabled when only one ply left. Add buttons are disabled when the maximum number of plys is reached.


enableOnePlySubstructure

private void enableOnePlySubstructure(int iPlys)
Check whether this ply data is able to be substructured and, if so, enable corresponding substructuring buttons.

Parameters:
iPlys - Current ply range line.
See Also:
acceptOnePly(int), subStructureIt(int,int)

setColor

private void setColor()
Determine next location to store chosen Material Code and highlight it.


wherePutMaterialCode

private void wherePutMaterialCode()
Determine location to store chosen Material Code. Looks for a blank spot on the current line with focus or after; otherwise, it just starts at the end and looks backward for the last blank spot. This method is only invoked by setColor.


getLastPlyNumber

private int getLastPlyNumber()
Get last ply number entered.

Returns:
Last ply number entered into Ply data.

getPIDs

private int[][] getPIDs()
Obtain an array of ply ID's, checking for valid numbers or ranges.

Returns:
Integer array of Ply ID pairs. Returns null on error.

getPIDs

private int[] getPIDs(int jPlys)
Obtain an array of ply ID's, checking for valid numbers or ranges.

Returns:
Integer array of Ply ID pairs. Returns null on error.

addSymmetric

private void addSymmetric()
Add symmetric ply data to the laminate data window. This method is invoked using the button labeled "Symmetric". The ply data will be repeated in reverse order to obtain a symmetric result.


getThickness

private double getThickness()
Compute total laminate thickness.


addSymmetricThick

private void addSymmetricThick(double end)
Add symmetric ply data to the laminate data window until total laminate thickness is reached. This method is invoked using the button labeled "Symmetric to Thickness...". The ply data will be repeated in the original order until half way to the thickness specified. The result will be repeated in reverse order to obtain a symmetric result.

Parameters:
end - Total laminate thickness desired for adding layers symmetrically.

addRepeat

private void addRepeat(int nEnd)
Add repeated ply data to the laminate data window. This method is invoked using the button labeled "Repeat Until...". The ply data will be repeated in the original order until the specified ply ID is reached.

Parameters:
nEnd - New ending ply ID.

delIcanDataPly

private void delIcanDataPly()
Remove last ply from the laminate data window.


delIcanDataPly

private void delIcanDataPly(int iEnd)
Remove plys from the laminate data window until the specified ending Ply ID is the ending ply ID. This method is invoked using the button labeled "Remove Ply(s)...".

Parameters:
iEnd - Ending Ply ID after removing higher plys.

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent evt)
Detect Action Events and process accordingly.

Specified by:
actionPerformed in interface java.awt.event.ActionListener
Parameters:
evt - Action event.

focusGained

public void focusGained(java.awt.event.FocusEvent evt)
Listens for Events when a component gains focus.

Specified by:
focusGained in interface java.awt.event.FocusListener
Parameters:
evt - Focus event.

focusLost

public void focusLost(java.awt.event.FocusEvent evt)
Listens for Events when a component loses focus. Enables Substructure slicing buttons as required. Formerly: Does Nothing.

Specified by:
focusLost in interface java.awt.event.FocusListener
Parameters:
evt - Focus event.

keyPressed

public void keyPressed(java.awt.event.KeyEvent evt)
Makes sure that keys are not processed twice.

Specified by:
keyPressed in interface java.awt.event.KeyListener
Parameters:
evt - Key event.

keyTyped

public void keyTyped(java.awt.event.KeyEvent evt)
Does Nothing

Specified by:
keyTyped in interface java.awt.event.KeyListener
Parameters:
evt - Key event.

keyReleased

public void keyReleased(java.awt.event.KeyEvent evt)
Detects when the following keys are released Tab, up arrow, down arrow, enter, shift+tab, alt+right, alt+left, F1

Specified by:
keyReleased in interface java.awt.event.KeyListener
Parameters:
evt - Key event.

helpMe

public void helpMe()
Display help message.


helpMe

public void helpMe(java.awt.Component target)
Display help message for a specified component.

Specified by:
helpMe in class GuiWindow
Parameters:
target - Component for which help is desired.

setClearData

private void setClearData()
Clear text and boolean (Checkbox) data entry fields.


presetData

public void presetData()
Set title and other ICAN/JAVA data and enable buttons. If ICAN/JAVA data initialized, use it to initialize the laminate/ply inputs.

Specified by:
presetData in class GuiWindow

setSubstructureButton

public void setSubstructureButton(int jPlys,
                                  java.lang.String selectPlys,
                                  java.lang.String selectSlices,
                                  int iPS,
                                  int[] nsubMIFIM,
                                  SubsliceItem[] subsliceItems,
                                  java.lang.String[] subDefect)
Store numbers of substructure slices of various types (Fiber, Interphase, Matrix) from which the plySubstructure Label is set.

Parameters:
jPlys - Ply number for which the substructure is determined.
selectPlys - Ply number selected or "all".
selectSlices - Slice number selected or "all".
iPS - 0 for Primary; 1 for Secondary.
nsubMIFIM - Array of numbers of substructure slices. The array contains 5 items, from bottom to top,
  1. Bottom number of matrix-only slices.
  2. Bottom number of interphase-only slices, with matrix at sides, and without any fiber or particle.
  3. Number of fiber-only or particle-only slices, with matrix and interphase at sides.
  4. Top number of interphase-only slices, with matrix at sides, and without any fiber or particle.
  5. Top number of matrix-only slices.
subsliceItems - List of SubsliceItem's containing slice ID's to be subsliced and numbers of subslices per slice.
subDefect - Array of slice/subslice ID's at which defect was set, of the form ply:box:slice[::Nx:Ny].

setCompFocus

public void setCompFocus()
Set the desired focus to some component, set the color for nearby blank material ID, make the component visible by scrolling to it, and request the focus to the desired component. Normally used when entering this screen after show(). Also used by setCompFocus(Component).

Specified by:
setCompFocus in class GuiHierarchy

setCompFocus

public void setCompFocus(java.awt.Component tFocus)
Make the specified component visible by scrolling to it, set the color for nearby blank material ID, and set the focus to the desired component.

Specified by:
setCompFocus in class GuiHierarchy
Parameters:
tFocus - The component to make visible and set the focus to.
See Also:
setCompFocus()

saveTheFocus

public void saveTheFocus(java.awt.Component tFocus)
Save the focus for a text area to be requested at a later time.

Parameters:
tFocus - The component to make visible and set the focus to.

saveTheFocus

public void saveTheFocus(int iPlys,
                         int iData)
Save the focus for a text area to be requested at a later time.


prtln

private void prtln(java.awt.Component cFocus)
Print component for testing purposes.

Parameters:
cFocus - Component to print.

acceptPlys

private boolean acceptPlys()
Check whether ply/laminate data is valid.

Returns:
True, if ply/laminate data is valid; else, false.

getMdbFileName

private java.lang.String getMdbFileName()
Display file dialog and get Material DataBank input data filename. This is a duplicate of the same routine in GuiMdbPrompt.

Returns:
Material DataBank input data filename.
See Also:
FileDialog

acceptOnePly

private boolean acceptOnePly(int jPlys)
Check whether this ply data is valid.

Parameters:
jPlys - Current ply range line.
Returns:
True, if this ply data is valid; else, false.

subStructureIt

public boolean subStructureIt(int jPlys,
                              int iPS)
Get all Material data and Ply data to do substructuring for this ply.

Parameters:
jPlys - Current ply range line.
iPS - 0 for Primary, 1 for Secondary.
Returns:
True, if this ply data is valid; else, false.

getCompositeSubstructure

public boolean getCompositeSubstructure(int jPlys,
                                        int iPS,
                                        int idbF,
                                        int idbM,
                                        int idbI,
                                        double kF,
                                        double kI,
                                        double kV,
                                        java.lang.String plyMaterialID)
Get Composite Material System component data and set up for Substructuring.

Parameters:
jPlys - Current ply range line.
iPS - 0 for Primary, 1 for Secondary.
idbF - Material Property DataBank Item Number for fiber or particle.
idbM - Material Property DataBank Item Number for matrix or binder.
idbI - Material Property DataBank Item Number for interphase.
kF - Fiber or particle volume ratio.
kI - interphase volume ratio.
kV - Void volume ratio.
plyMaterialID - Ply materrial ID for error messages.
Returns:
True, if this ply data is valid; else, false.

changeGuiUnits

public void changeGuiUnits()
Change units on GUI for this class. Invoked when user changes units.

Specified by:
changeGuiUnits in class GuiWindow

getName

public java.lang.String getName()
Get class name.

Specified by:
getName in class GuiWindow
Returns:
Class name.