CaRMtl/eric/textfieldpopup/JMenuPanel.java

153 lines
3.8 KiB
Java

/*
Copyright 2006 Eric Hakenholz
This file is part of C.a.R. software.
C.a.R. is a 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, version 3 of the License.
C.a.R. is distributed in the hope that it will be useful,
but 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 this program. If not, see <http://www.gnu.org/licenses/>.
*/
package eric.textfieldpopup;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.BorderFactory;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JComponent;
import eric.JEricPanel;
import javax.swing.JPopupMenu;
import javax.swing.text.JTextComponent;
import rene.gui.Global;
/**
*
* @author erichake
*/
public class JMenuPanel extends JEricPanel implements MouseListener {
/**
*
*/
private static final long serialVersionUID = 1L;
JPopupMenu MEN = null;
int iconwidth = 20;
int iconheight = 20;
JComponent JTF;
public JMenuPanel(final JPopupMenu men) {
MEN = men;
setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
setAlignmentY(0f);
setOpaque(true);
setFocusable(false);
setBackground(new Color(250, 250, 250));
}
static void fixsize(final JComponent cp, final int w, final int h) {
final Dimension d = new Dimension(w, h);
cp.setMaximumSize(d);
cp.setMinimumSize(d);
cp.setPreferredSize(d);
cp.setSize(d);
}
public JButton getJButton(final String s) {
final JButton mybtn = new JButton(s);
mybtn.setBorder(BorderFactory.createEmptyBorder());
mybtn.setBorderPainted(false);
mybtn.setFocusPainted(false);
mybtn.setFocusable(false);
mybtn.setBackground(new Color(228, 222, 255));
mybtn.setOpaque(false);
mybtn.setContentAreaFilled(false);
mybtn.addMouseListener(this);
mybtn.setFont(new java.awt.Font(Global.GlobalFont, 1, 11));
mybtn.setForeground(new Color(20, 20, 20));
fixsize(mybtn, iconwidth, iconheight);
return mybtn;
}
JEricPanel getnewline() {
final JEricPanel line = new JEricPanel();
line.setLayout(new BoxLayout(line, BoxLayout.X_AXIS));
line.setAlignmentX(0f);
line.setOpaque(false);
return line;
}
JEricPanel getnewcol() {
final JEricPanel col = new JEricPanel();
col.setLayout(new BoxLayout(col, BoxLayout.Y_AXIS));
col.setAlignmentY(0f);
col.setOpaque(true);
col.setBackground(new Color(250, 250, 250));
return col;
}
public void doAction(final JButton mybtn) {
final String s = mybtn.getText();
mybtn.setOpaque(false);
mybtn.setContentAreaFilled(false);
if (JTF != null) {
final JTextComponent jt = (JTextComponent) JTF;
String mytxt = jt.getText().substring(0, jt.getSelectionStart());
mytxt += s;
final int car = mytxt.length();
mytxt += jt.getText().substring(jt.getSelectionEnd());
jt.setText(mytxt);
jt.setCaretPosition(car);
MEN.setVisible(false);
}
}
public void mouseClicked(final MouseEvent e) {
final JButton mybtn = (JButton) e.getComponent();
doAction(mybtn);
}
public void mousePressed(final MouseEvent e) {
}
public void mouseReleased(final MouseEvent e) {
}
public void mouseEntered(final MouseEvent e) {
if (e.getSource() != null) {
final JButton btn = (JButton) e.getSource();
btn.setBackground(new Color(171, 191, 231));
btn.setOpaque(true);
btn.setContentAreaFilled(true);
}
}
public void mouseExited(final MouseEvent e) {
if (e.getSource() != null) {
final JButton btn = (JButton) e.getSource();
btn.setOpaque(false);
btn.setContentAreaFilled(false);
}
}
}