TavernerPOS - Source Code
Clone:
git clone http://www.librarysmith.co.uk/tavernerPOS
package com.floreantpos.util;
import java.awt.Dialog;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.Transparency;
import java.awt.Window;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.List;
import javax.imageio.ImageIO;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.border.TitledBorder;
import javax.swing.table.TableColumn;
import javax.swing.text.JTextComponent;
import com.floreantpos.Messages;
import com.floreantpos.POSConstants;
import com.floreantpos.main.Application;
import com.floreantpos.model.ShopTable;
import com.floreantpos.model.Ticket;
import com.floreantpos.ui.dialog.NumberSelectionDialog2;
import com.floreantpos.ui.dialog.POSMessageDialog;
import com.floreantpos.ui.dialog.TableSelectionDialog;
public class PosGuiUtil {
public static List<ShopTable> captureTable(Ticket ticket) {
TableSelectionDialog dialog = new TableSelectionDialog();
dialog.setTicket(ticket);
dialog.pack();
dialog.open();
if (dialog.isCanceled()) {
int option = POSMessageDialog.showYesNoQuestionDialog(Application.getPosWindow(), Messages.getString("PosGuiUtil.0"), Messages.getString("PosGuiUtil.1")); //$NON-NLS-1$ //$NON-NLS-2$
if (option != JOptionPane.YES_OPTION) {
return null;
}
}
return dialog.getTables();
}
public static int captureGuestNumber() {
NumberSelectionDialog2 dialog = new NumberSelectionDialog2();
dialog.setTitle(POSConstants.ENTER_NUMBER_OF_GUEST);
dialog.pack();
dialog.open();
if (dialog.isCanceled()) {
return -1;
}
int numberOfGuests = (int) dialog.getValue();
if (numberOfGuests == 0) {
POSMessageDialog.showError(Application.getPosWindow(), POSConstants.GUEST_NUMBER_CANNOT_BE_0);
return -1;
}
return numberOfGuests;
}
public static Double parseDouble(JTextComponent textComponent) {
String text = textComponent.getText();
try {
return Double.parseDouble(text);
} catch (Exception e) {
return 0.0;
}
}
public static boolean isModalDialogShowing() {
Window[] windows = Window.getWindows();
if (windows != null) { // don't rely on current implementation, which at least returns [0].
for (Window w : windows) {
if (w.isShowing() && w instanceof Dialog && ((Dialog) w).isModal())
return true;
}
}
return false;
}
public static void setColumnWidth(JTable table, int columnNumber, int width) {
TableColumn column = table.getColumnModel().getColumn(columnNumber);
column.setPreferredWidth(width);
column.setWidth(width);
// column.setMaxWidth(width);
// column.setMinWidth(width);
}
public static TitledBorder createTitledBorder(String title) {
return new TitledBorder(null, title, TitledBorder.CENTER, TitledBorder.CENTER);
}
private static JFileChooser fileChooser = new JFileChooser();
public static BufferedImage selectImageFile() throws Exception {
fileChooser.setMultiSelectionEnabled(false);
fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
int option = fileChooser.showOpenDialog(null);
if (option == JFileChooser.APPROVE_OPTION) {
File imageFile = fileChooser.getSelectedFile();
BufferedImage image = ImageIO.read(imageFile);
return scale(image, 100, 100);
}
return null;
}
public static BufferedImage scale(BufferedImage img, int targetWidth, int targetHeight) {
int type = (img.getTransparency() == Transparency.OPAQUE) ? BufferedImage.TYPE_INT_RGB : BufferedImage.TYPE_INT_ARGB;
BufferedImage ret = img;
BufferedImage scratchImage = null;
Graphics2D g2 = null;
int w = img.getWidth();
int h = img.getHeight();
int prevW = w;
int prevH = h;
do {
if (w > targetWidth) {
w /= 2;
w = (w < targetWidth) ? targetWidth : w;
}
if (h > targetHeight) {
h /= 2;
h = (h < targetHeight) ? targetHeight : h;
}
if (scratchImage == null) {
scratchImage = new BufferedImage(w, h, type);
g2 = scratchImage.createGraphics();
}
g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g2.drawImage(ret, 0, 0, w, h, 0, 0, prevW, prevH, null);
prevW = w;
prevH = h;
ret = scratchImage;
} while (w != targetWidth || h != targetHeight);
if (g2 != null) {
g2.dispose();
}
if (targetWidth != ret.getWidth() || targetHeight != ret.getHeight()) {
scratchImage = new BufferedImage(targetWidth, targetHeight, type);
g2 = scratchImage.createGraphics();
g2.drawImage(ret, 0, 0, null);
g2.dispose();
ret = scratchImage;
}
return ret;
}
}
- Details
- Last Updated: Monday, 04 April 2016 02:04
- Hits: 35749151