This commit is contained in:
@@ -7,15 +7,186 @@ import ch.psi.pshell.ui.Console;
|
||||
import ch.psi.pshell.ui.Panel;
|
||||
import ch.psi.utils.Config;
|
||||
import ch.psi.utils.State;
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.Component;
|
||||
import java.awt.Container;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.EventQueue;
|
||||
import java.awt.Insets;
|
||||
import java.awt.LayoutManager;
|
||||
import java.io.IOException;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import javax.swing.BorderFactory;
|
||||
import javax.swing.JComponent;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JSpinner;
|
||||
import javax.swing.SpinnerNumberModel;
|
||||
import javax.swing.WindowConstants;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public class Tomaz extends Panel {
|
||||
|
||||
/*
|
||||
|
||||
public JComponent makeUI() {
|
||||
SpinnerNumberModel m = new SpinnerNumberModel(10, 0, 1000, 1);
|
||||
JSpinner spinner = new JSpinner(m) {
|
||||
@Override public void setLayout(LayoutManager mgr) {
|
||||
super.setLayout(new SpinnerLayout());
|
||||
}
|
||||
};
|
||||
JPanel p = new JPanel(new BorderLayout(5,5));
|
||||
p.add(new JSpinner(m), BorderLayout.NORTH);
|
||||
p.add(spinner, BorderLayout.SOUTH);
|
||||
p.setBorder(BorderFactory.createEmptyBorder(16,16,16,16));
|
||||
return p;
|
||||
}
|
||||
public static void main(String[] args) {
|
||||
EventQueue.invokeLater(new Runnable() {
|
||||
@Override public void run() {
|
||||
createAndShowGUI();
|
||||
}
|
||||
});
|
||||
}
|
||||
public static void createAndShowGUI() {
|
||||
JFrame f = new JFrame();
|
||||
f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
|
||||
f.getContentPane().add(new SpinnerLayoutTest().makeUI());
|
||||
f.setSize(320, 160);
|
||||
f.setLocationRelativeTo(null);
|
||||
f.setVisible(true);
|
||||
}
|
||||
}
|
||||
class SpinnerLayout extends BorderLayout {
|
||||
@Override public void addLayoutComponent(Component comp, Object constraints) {
|
||||
if("Editor".equals(constraints)) {
|
||||
constraints = "Center";
|
||||
} else if("Next".equals(constraints)) {
|
||||
constraints = "North";
|
||||
} else if("Previous".equals(constraints)) {
|
||||
constraints = "South";
|
||||
}
|
||||
super.addLayoutComponent(comp, constraints);
|
||||
}
|
||||
} */
|
||||
|
||||
|
||||
private static class HorizontalSpinnerLayoutManager implements LayoutManager
|
||||
{
|
||||
final Component bup;
|
||||
final Component bdown;
|
||||
final Component txt;
|
||||
int buttom_width;
|
||||
int buttom_height;
|
||||
HorizontalSpinnerLayoutManager(JSpinner sp)
|
||||
{
|
||||
Component[] components = sp.getComponents();
|
||||
bup = components[0];
|
||||
bdown = components[1];
|
||||
txt = components[2];
|
||||
//((javax.swing.JButton)bup).getBorder()
|
||||
buttom_width=bdown.getPreferredSize().width-3;
|
||||
}
|
||||
|
||||
public void addLayoutComponent(String name, Component comp) {
|
||||
}
|
||||
|
||||
public void removeLayoutComponent(Component comp) {
|
||||
}
|
||||
|
||||
public Dimension preferredLayoutSize(Container parent) {
|
||||
Insets in = parent.getInsets();
|
||||
//return parent.getPreferredSize();
|
||||
return new Dimension(2*buttom_width + Math.max(txt.getPreferredSize().width,12) , //Compressing a bit+ not considering insets on width
|
||||
txt.getPreferredSize().height + in.top + in.bottom);
|
||||
//Insets insets = parent.getInsets();
|
||||
//insets
|
||||
}
|
||||
|
||||
public Dimension minimumLayoutSize(Container parent) {
|
||||
Insets in = parent.getInsets();
|
||||
return new Dimension(2*buttom_width + txt.getMinimumSize().width ,
|
||||
bdown.getMinimumSize().height + in.top + in.bottom);
|
||||
}
|
||||
|
||||
public void layoutContainer(Container parent) {
|
||||
Insets in = parent.getInsets();
|
||||
int top=1;
|
||||
int bottom=parent.getHeight()-1;
|
||||
int left=1;
|
||||
int right=parent.getWidth()-1;
|
||||
|
||||
int width=right-left;
|
||||
int height=bottom-top;
|
||||
|
||||
// if ( isStyleXP())
|
||||
// {
|
||||
// bdown.setBounds(left, top+1, buttom_width, height-1);
|
||||
// bup.setBounds(right-buttom_width, top, buttom_width, height-1);
|
||||
// }
|
||||
// else
|
||||
{
|
||||
bdown.setBounds(left, top, buttom_width, height);
|
||||
bup.setBounds(right-buttom_width, top, buttom_width, height);
|
||||
}
|
||||
txt.setBounds( left+buttom_width, top, width- (2*buttom_width),height);
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean setHorizontalSpinner(javax.swing.JSpinner sp)
|
||||
{
|
||||
if (sp.getLayout() instanceof HorizontalSpinnerLayoutManager)
|
||||
return true;
|
||||
if (sp.getComponents().length!=3)
|
||||
return false;
|
||||
sp.setLayout(new HorizontalSpinnerLayoutManager(sp));
|
||||
|
||||
//final Component bup = components[0];
|
||||
//final Component bdown = components[1];
|
||||
//final Component txt = components[2];
|
||||
|
||||
//sp.setComponentZOrder(bdown,0);
|
||||
//sp.setComponentZOrder(txt,1);
|
||||
//sp.setComponentZOrder(bup,2);
|
||||
//javax.swing.BoxLayout layout = new javax.swing.BoxLayout(sp, javax.swing.BoxLayout.LINE_AXIS);
|
||||
|
||||
/*
|
||||
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(sp);
|
||||
layout.setAutoCreateGaps(false);
|
||||
layout.setHorizontalGroup(
|
||||
layout.createSequentialGroup()
|
||||
.addComponent(bdown, javax.swing.GroupLayout.PREFERRED_SIZE, bup.getPreferredSize().width, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(txt, javax.swing.GroupLayout.DEFAULT_SIZE, txt.getPreferredSize().width, Short.MAX_VALUE)
|
||||
.addComponent(bup, javax.swing.GroupLayout.PREFERRED_SIZE, bup.getPreferredSize().width, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
);
|
||||
layout.setVerticalGroup(
|
||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
|
||||
.addComponent(bdown, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(txt, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(bup, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
);
|
||||
sp.setLayout(layout);
|
||||
*/
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public static void setHorizontalSpinners(java.awt.Container container)
|
||||
{
|
||||
for (java.awt.Component c:container.getComponents())
|
||||
{
|
||||
if (c instanceof javax.swing.JSpinner)
|
||||
setHorizontalSpinner((javax.swing.JSpinner)c);
|
||||
else if (c instanceof java.awt.Container)
|
||||
setHorizontalSpinners((java.awt.Container)c);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
final Console console;
|
||||
|
||||
public Tomaz() {
|
||||
@@ -29,6 +200,8 @@ public class Tomaz extends Panel {
|
||||
}
|
||||
}
|
||||
};
|
||||
setHorizontalSpinners(this);
|
||||
setHorizontalSpinner(spinner);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -68,6 +241,9 @@ public class Tomaz extends Panel {
|
||||
private void initComponents() {
|
||||
|
||||
jButton1 = new javax.swing.JButton();
|
||||
jSpinner1 = new javax.swing.JSpinner();
|
||||
jSpinner2 = new javax.swing.JSpinner();
|
||||
spinner = new javax.swing.JSpinner();
|
||||
|
||||
jButton1.setText("jButton1");
|
||||
jButton1.addActionListener(new java.awt.event.ActionListener() {
|
||||
@@ -76,21 +252,38 @@ public class Tomaz extends Panel {
|
||||
}
|
||||
});
|
||||
|
||||
jSpinner1.setModel(new javax.swing.SpinnerDateModel());
|
||||
|
||||
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
|
||||
this.setLayout(layout);
|
||||
layout.setHorizontalGroup(
|
||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(layout.createSequentialGroup()
|
||||
.addGap(133, 133, 133)
|
||||
.addComponent(jButton1)
|
||||
.addContainerGap(219, Short.MAX_VALUE))
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(layout.createSequentialGroup()
|
||||
.addGap(66, 66, 66)
|
||||
.addComponent(jButton1)
|
||||
.addGap(117, 117, 117)
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(jSpinner1, javax.swing.GroupLayout.PREFERRED_SIZE, 138, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(jSpinner2, javax.swing.GroupLayout.PREFERRED_SIZE, 138, javax.swing.GroupLayout.PREFERRED_SIZE)))
|
||||
.addGroup(layout.createSequentialGroup()
|
||||
.addGap(48, 48, 48)
|
||||
.addComponent(spinner, javax.swing.GroupLayout.PREFERRED_SIZE, 138, javax.swing.GroupLayout.PREFERRED_SIZE)))
|
||||
.addContainerGap(31, Short.MAX_VALUE))
|
||||
);
|
||||
layout.setVerticalGroup(
|
||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(layout.createSequentialGroup()
|
||||
.addGap(38, 38, 38)
|
||||
.addComponent(jButton1)
|
||||
.addContainerGap(70, Short.MAX_VALUE))
|
||||
.addGap(28, 28, 28)
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(jSpinner1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(jButton1))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(jSpinner2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(spinner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addContainerGap(16, Short.MAX_VALUE))
|
||||
);
|
||||
}// </editor-fold>//GEN-END:initComponents
|
||||
|
||||
@@ -108,5 +301,8 @@ public class Tomaz extends Panel {
|
||||
|
||||
// Variables declaration - do not modify//GEN-BEGIN:variables
|
||||
private javax.swing.JButton jButton1;
|
||||
private javax.swing.JSpinner jSpinner1;
|
||||
private javax.swing.JSpinner jSpinner2;
|
||||
private javax.swing.JSpinner spinner;
|
||||
// End of variables declaration//GEN-END:variables
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user