Skip to content

Instantly share code, notes, and snippets.

@eiennohito
Created April 18, 2012 17:35
Show Gist options
  • Save eiennohito/2415314 to your computer and use it in GitHub Desktop.
Save eiennohito/2415314 to your computer and use it in GitHub Desktop.
package org.eiennohito.ui.components;
import org.eiennohito.transformations.ZByXShift;
import org.eiennohito.transformations.AbstractTransformation;
import org.eiennohito.transformations.ProjectiveTransformation;
import org.eiennohito.ui.GLDrawer;
import org.eiennohito.ui.verification.FloatInputVerifier;
import javax.swing.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
/**
* @author eiennohito
* /me Now Playing: [2006. Xenosaga III OST2 #16] 梶浦由記 - hepatica#3~I beliebe in you [1:53/7:52 | FLAC | 715kbps]
*/
public class MiscPanel extends JPanel {
private GLDrawer drawer;
public MiscPanel(GLDrawer drawer) {
this.drawer = drawer;
initComponents();
}
private void initComponents() {
shiftLbl = new javax.swing.JLabel();
shiftParam = new javax.swing.JTextField(15);
shiftBtn = new javax.swing.JButton();
shiftLbl.setText("z by x shift"); // NOI18N
shiftParam.setText("0"); // NOI18N
shiftParam.setInputVerifier(new FloatInputVerifier());
shiftBtn.setText("do shift"); // NOI18N
shiftBtn.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
float value = 0;
try {
value = Float.parseFloat(shiftParam.getText());
} catch (NumberFormatException e1) {
JOptionPane.showMessageDialog(null, "Invalid value");
}
ZByXShift shift = new ZByXShift(value);
drawer.addTransformation(shift);
}
});
JLabel ppLbl = new javax.swing.JLabel("1pt proj trans");
final JTextField ppParam = new javax.swing.JTextField(15);
JButton ppBtn = new javax.swing.JButton();
ppParam.setInputVerifier(new FloatInputVerifier());
ppBtn.setText("add transformation");
shiftBtn.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
float value = 0;
try {
value = Float.parseFloat(ppParam.getText());
} catch (NumberFormatException e1) {
JOptionPane.showMessageDialog(null, "Invalid value");
}
AbstractTransformation pt = new ProjectiveTransformation(value);
drawer.addTransformation(pt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(shiftLbl)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(shiftParam, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(shiftBtn)
.addContainerGap(200, Short.MAX_VALUE))
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(ppLbl)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(ppParam, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(ppBtn)
.addContainerGap(200, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(shiftLbl)
.addComponent(shiftParam, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(shiftBtn))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(ppLbl)
.addComponent(ppParam, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(ppBtn))
.addContainerGap(266, Short.MAX_VALUE))
);
}
// Variables declaration - do not modify
private javax.swing.JButton shiftBtn;
private javax.swing.JLabel shiftLbl;
private javax.swing.JTextField shiftParam;
// End of variables declaration
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment