Program: 185199
Project: 185199
Buggy source:
private PlotSettingsSubPanel getAlternateBottomPanel(){
  final AxisPanel yAxisPanel=new AxisPanel(){
    private static final long serialVersionUID=7880175726915727283L;
    @Override public void initialLayout(){
      addAt(minMaxPanel[0],0,3,1,1,GridBagConstraints.SOUTHWEST,GridBagConstraints.BOTH);
      addAt(minMaxPanel[1],0,1,1,1,GridBagConstraints.NORTHWEST,GridBagConstraints.BOTH);
      addAt(minMaxLabel[0],1,3,1,1,GridBagConstraints.SOUTHEAST,GridBagConstraints.NONE);
      addAt(minMaxLabel[1],1,0,1,1,GridBagConstraints.NORTHEAST,GridBagConstraints.NONE);
      addAt(spanPanel,0,2,2,1,GridBagConstraints.EAST,GridBagConstraints.BOTH);
      addAt(axisTitle,0,0,2,1,GridBagConstraints.NORTH,GridBagConstraints.BOTH);
    }
  }
;
  final AxisPanel xAxisPanel=new AxisPanel(){
    private static final long serialVersionUID=7880175726915727283L;
    @Override public void initialLayout(){
      addAt(minMaxPanel[0],0,1,2,1,GridBagConstraints.WEST,GridBagConstraints.NONE);
      addAt(minMaxPanel[1],2,1,2,1,GridBagConstraints.EAST,GridBagConstraints.NONE);
      addAt(minMaxLabel[0],0,0,1,1,GridBagConstraints.NORTHWEST,GridBagConstraints.NONE);
      addAt(minMaxLabel[1],3,0,1,1,GridBagConstraints.NORTHEAST,GridBagConstraints.NONE);
      addAt(spanPanel,1,0,2,1,GridBagConstraints.NORTH,GridBagConstraints.BOTH);
      addAt(axisTitle,1,2,2,1,GridBagConstraints.SOUTH,GridBagConstraints.BOTH);
    }
  }
;
  JPanel p1=new JPanel();
  p1.add(new JLabel("String_Node_Str"));
  JPanel p2=new JPanel();
  p2.add(new JLabel("String_Node_Str"));
  JPanel p3=new JPanel();
  final AxisGroup timeGroup=new AxisGroup(new TimeAxisMinimumsPanel(),new TimeAxisMaximumsPanel(),new XAxisSpanCluster());
  final AxisGroup nonTimeGroup=new AxisGroup(new NonTimeAxisMinimumsPanel(false),new NonTimeAxisMaximumsPanel(),new YAxisSpanPanel());
  PlotSettingsPanel panel=new PlotSettingsPanel(){
    private static final long serialVersionUID=1730870211575829997L;
    @Override public void reset(    PlotConfiguration settings,    boolean hard){
      boolean xInverted=settings.getXAxisMaximumLocation() == XAxisMaximumLocationSetting.MAXIMUM_AT_LEFT;
      boolean yInverted=settings.getYAxisMaximumLocation() == YAxisMaximumLocationSetting.MAXIMUM_AT_BOTTOM;
switch (settings.getAxisOrientationSetting()) {
case X_AXIS_AS_TIME:
        xAxisPanel.setFrom(timeGroup,xInverted);
      yAxisPanel.setFrom(nonTimeGroup,yInverted);
    timeGroup.setTitle("String_Node_Str");
  nonTimeGroup.setTitle("String_Node_Str");
break;
case Y_AXIS_AS_TIME:
yAxisPanel.setFrom(timeGroup,xInverted);
xAxisPanel.setFrom(nonTimeGroup,yInverted);
timeGroup.setTitle("String_Node_Str");
nonTimeGroup.setTitle("String_Node_Str");
break;
}
super.reset(settings,hard);
}
}
;
panel.setLayout(new GridBagLayout());
panel.setBorder(TOP_PADDED_MARGINS);
GridBagConstraints gbc=new GridBagConstraints();
gbc.gridx=0;
gbc.gridy=1;
gbc.gridwidth=1;
gbc.gridheight=3;
gbc.fill=GridBagConstraints.BOTH;
gbc.insets=new Insets(2,0,10,2);
panel.add(yAxisPanel,gbc);
gbc.gridx=1;
gbc.gridy=1;
gbc.gridwidth=3;
gbc.gridheight=3;
panel.add(imagePanel,gbc);
gbc.gridx=1;
gbc.gridy=4;
gbc.gridwidth=3;
gbc.gridheight=1;
gbc.fill=GridBagConstraints.BOTH;
gbc.insets=new Insets(0,8,0,0);
panel.add(xAxisPanel,gbc);
yAxisPanel.setName("String_Node_Str");
xAxisPanel.setName("String_Node_Str");
return panel;
}

Fixed version (ground truth):
private PlotSettingsSubPanel getAlternateBottomPanel(){
  final AxisPanel xAxisPanel=new AxisPanel(){
    private static final long serialVersionUID=7880175726915727283L;
    @Override public void initialLayout(){
      layout.putConstraint(SpringLayout.WEST,minMaxPanel[0],0,SpringLayout.WEST,this);
      layout.putConstraint(SpringLayout.NORTH,minMaxPanel[0],0,SpringLayout.SOUTH,spanPanel);
      layout.putConstraint(SpringLayout.EAST,this,0,SpringLayout.EAST,minMaxPanel[1]);
      layout.putConstraint(SpringLayout.WEST,minMaxPanel[1],0,SpringLayout.EAST,minMaxPanel[0]);
      layout.putConstraint(SpringLayout.NORTH,minMaxPanel[1],0,SpringLayout.SOUTH,spanPanel);
      layout.putConstraint(SpringLayout.WEST,minMaxLabel[0],0,SpringLayout.WEST,this);
      layout.putConstraint(SpringLayout.NORTH,minMaxLabel[0],0,SpringLayout.NORTH,this);
      layout.putConstraint(SpringLayout.EAST,minMaxLabel[1],0,SpringLayout.EAST,this);
      layout.putConstraint(SpringLayout.NORTH,minMaxLabel[1],0,SpringLayout.NORTH,this);
      layout.putConstraint(SpringLayout.SOUTH,minMaxPanel[1],0,SpringLayout.SOUTH,minMaxPanel[0]);
      layout.putConstraint(SpringLayout.NORTH,axisTitle,0,SpringLayout.SOUTH,minMaxPanel[0]);
      layout.putConstraint(SpringLayout.HORIZONTAL_CENTER,axisTitle,0,SpringLayout.EAST,minMaxPanel[0]);
      layout.putConstraint(SpringLayout.NORTH,spanPanel,0,SpringLayout.NORTH,this);
      layout.putConstraint(SpringLayout.HORIZONTAL_CENTER,spanPanel,0,SpringLayout.EAST,minMaxPanel[0]);
      layout.putConstraint(SpringLayout.SOUTH,this,0,SpringLayout.SOUTH,axisTitle);
    }
  }
;
  final AxisPanel yAxisPanel=new AxisPanel(){
    private static final long serialVersionUID=7880175726915727283L;
    @Override public void initialLayout(){
      layout.putConstraint(SpringLayout.WEST,minMaxPanel[0],0,SpringLayout.WEST,this);
      layout.putConstraint(SpringLayout.WEST,minMaxLabel[0],0,SpringLayout.EAST,minMaxPanel[0]);
      layout.putConstraint(SpringLayout.WEST,minMaxPanel[1],0,SpringLayout.WEST,minMaxPanel[0]);
      layout.putConstraint(SpringLayout.WEST,minMaxLabel[1],0,SpringLayout.EAST,minMaxPanel[1]);
      layout.putConstraint(SpringLayout.EAST,spanPanel,0,SpringLayout.EAST,this);
      layout.putConstraint(SpringLayout.EAST,this,0,SpringLayout.EAST,minMaxLabel[0]);
      layout.putConstraint(SpringLayout.HORIZONTAL_CENTER,axisTitle,0,SpringLayout.HORIZONTAL_CENTER,minMaxPanel[0]);
      layout.putConstraint(SpringLayout.NORTH,axisTitle,0,SpringLayout.NORTH,this);
      layout.putConstraint(SpringLayout.NORTH,minMaxPanel[0],0,SpringLayout.SOUTH,axisTitle);
      layout.putConstraint(SpringLayout.NORTH,spanPanel,0,SpringLayout.SOUTH,minMaxPanel[0]);
      layout.putConstraint(SpringLayout.NORTH,minMaxPanel[1],0,SpringLayout.SOUTH,spanPanel);
      layout.putConstraint(SpringLayout.SOUTH,this,0,SpringLayout.SOUTH,minMaxPanel[1]);
      layout.putConstraint(SpringLayout.SOUTH,minMaxLabel[1],0,SpringLayout.SOUTH,this);
    }
  }
;
  JPanel p1=new JPanel();
  p1.add(new JLabel("String_Node_Str"));
  JPanel p2=new JPanel();
  p2.add(new JLabel("String_Node_Str"));
  JPanel p3=new JPanel();
  final AxisGroup timeGroup=new AxisGroup(new TimeAxisMinimumsPanel(),new TimeAxisMaximumsPanel(),new XAxisSpanCluster());
  final AxisGroup nonTimeGroup=new AxisGroup(new NonTimeAxisMinimumsPanel(false),new NonTimeAxisMaximumsPanel(),new YAxisSpanPanel());
  PlotSettingsPanel panel=new PlotSettingsPanel(){
    private static final long serialVersionUID=1730870211575829997L;
    @Override public void reset(    PlotConfiguration settings,    boolean hard){
      boolean xInverted=settings.getXAxisMaximumLocation() == XAxisMaximumLocationSetting.MAXIMUM_AT_LEFT;
      boolean yInverted=settings.getYAxisMaximumLocation() == YAxisMaximumLocationSetting.MAXIMUM_AT_BOTTOM;
switch (settings.getAxisOrientationSetting()) {
case X_AXIS_AS_TIME:
        xAxisPanel.setFrom(timeGroup,xInverted);
      yAxisPanel.setFrom(nonTimeGroup,yInverted);
    break;
case Y_AXIS_AS_TIME:
  yAxisPanel.setFrom(timeGroup,yInverted);
xAxisPanel.setFrom(nonTimeGroup,xInverted);
break;
}
timeGroup.setTitle("String_Node_Str");
nonTimeGroup.setTitle("String_Node_Str");
super.reset(settings,hard);
}
}
;
panel.setLayout(new GridBagLayout());
panel.setBorder(TOP_PADDED_MARGINS);
GridBagConstraints gbc=new GridBagConstraints();
gbc.gridx=0;
gbc.gridy=1;
gbc.gridwidth=1;
gbc.gridheight=3;
gbc.fill=GridBagConstraints.BOTH;
gbc.insets=new Insets(2,0,10,2);
panel.add(yAxisPanel,gbc);
gbc.gridx=1;
gbc.gridy=1;
gbc.gridwidth=3;
gbc.gridheight=3;
panel.add(imagePanel,gbc);
gbc.gridx=1;
gbc.gridy=4;
gbc.gridwidth=3;
gbc.gridheight=1;
gbc.fill=GridBagConstraints.BOTH;
gbc.insets=new Insets(0,8,0,0);
panel.add(xAxisPanel,gbc);
yAxisPanel.setName("String_Node_Str");
xAxisPanel.setName("String_Node_Str");
return panel;
}