package tampilan; import javax.swing.*; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableCellRenderer; import tampilan.Manage_supp.ButtonEditor; import tampilan.Manage_supp.ButtonRenderer; import tampilan.Manage_supp.Final_editSupp; import fungsi.*; import database.*; import java.awt.*; import java.awt.Dialog.ModalityType; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.InputMethodListener; import java.sql.Statement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Vector; public class Report extends JDialog { private dbTransaksi trans = new dbTransaksi(); private dbDTransaksi dTrans = new dbDTransaksi(); private dbAdmin da = new dbAdmin(); private dbProducts dp = new dbProducts(); private JPanel panelCari = new JPanel(); private JPanel panelKeluaran = new JPanel(); private Container kontainer; private JLabel lblCari = new JLabel("Cari Berdasar"); private String [] x = {"ID Transaksi", "Nama Petugas", "Tanggal"}; private JComboBox cboKategori = new JComboBox(x); private JTextField txtCari = new JTextField(10); private JButton btnCari = new JButton("Cari"); private JLabel lblNotif = new JLabel("Format tanggal masukan : yyyy - mm - dd"); public String idTrans=""; public int rowx; public int columnx; private DefaultTableModel dataModel = new DefaultTableModel() { @Override public boolean isCellEditable(int row, int column) { if(column >=4){ return true; } else{ return false; } } }; private JTable table = new JTable(dataModel); private JScrollPane scroll = new JScrollPane(table); public Report(Utama owner, String title, ModalityType modal) { super(owner, title, modal); super.setSize(500, 370); super.setLocationRelativeTo(null); super.setDefaultCloseOperation(DISPOSE_ON_CLOSE); super.setResizable(false); //super.setVisible(true); panelCari.setLayout(new GridBagLayout()); panelKeluaran.setLayout(new FlowLayout()); kontainer= getContentPane(); kontainer.setLayout(new FlowLayout()); GridBagConstraints c = new GridBagConstraints(); panelCari.setBorder(BorderFactory.createTitledBorder("Cari Transaksi")); dataModel.addColumn("ID Transaksi"); dataModel.addColumn("Nama Petugas"); dataModel.addColumn("Tanggal"); dataModel.addColumn("Jam"); dataModel.addColumn("View"); table.setModel(dataModel); Date now= new Date(); SimpleDateFormat fYear=new SimpleDateFormat("yy"); SimpleDateFormat fDate=new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat fTime=new SimpleDateFormat("HH:mm:ss"); c.fill = GridBagConstraints.HORIZONTAL; c.insets = new Insets(10,10,10,10); c.gridx = 0; c.gridy = 0; panelCari.add(lblCari,c); c.gridx = 1; c.gridy = 0; //lblIdTrans2.setText(id.getText()); panelCari.add(cboKategori,c); c.gridx = 2; c.gridy = 0; panelCari.add(txtCari,c); c.gridx = 3; c.gridy = 0; panelCari.add(btnCari,c); c.gridx = 1; c.gridy = 1; c.gridwidth = 2; lblNotif.setVisible(false); panelCari.add(lblNotif,c); scroll.setMaximumSize(new Dimension(470,100)); scroll.setPreferredSize(new Dimension(470,200)); table.getColumnModel().getColumn(4) .setCellRenderer(new ButtonRenderer()); table.getColumnModel().getColumn(4) .setCellEditor(new ButtonEditor(new JCheckBox())); panelKeluaran.add(scroll); kontainer.add(panelCari); kontainer.add(panelKeluaran); selectKategori(); btnCari(); } public void selectKategori(){ cboKategori.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { // TODO Auto-generated method stub if(cboKategori.getSelectedIndex()==0){ lblNotif.setVisible(false); } else if (cboKategori.getSelectedIndex()==1){ lblNotif.setVisible(false); } else{ lblNotif.setVisible(true); } } }); } public void btnCari(){ btnCari.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { // TODO Auto-generated method stub String kategori =""; if(cboKategori.getSelectedIndex()==0){ kategori = "idTrans"; } else if (cboKategori.getSelectedIndex()==1){ kategori = "namaKasir"; } else{ kategori = "tgl"; } trans.cariBy(kategori, table, dataModel, txtCari); kategori=""; } }); } class ButtonRenderer extends JButton implements TableCellRenderer { public ButtonRenderer() { setOpaque(true); } public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { if (isSelected) { setForeground(table.getSelectionForeground()); setBackground(table.getSelectionBackground()); } else { setForeground(table.getForeground()); setBackground(UIManager.getColor("Button.background")); } setText((value == null) ? "" : value.toString()); return this; } } class ButtonEditor extends DefaultCellEditor { protected JButton button; private String label; private boolean isDeleteRow = false; private boolean isPushed; public ButtonEditor(JCheckBox checkBox) { super(checkBox); button = new JButton(); button.setOpaque(true); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { fireEditingStopped(); } }); } public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { if (isSelected) { button.setForeground(table.getSelectionForeground()); button.setBackground(table.getSelectionBackground()); } else { button.setForeground(table.getForeground()); button.setBackground(table.getBackground()); } // label = (value == null) ? "" : value.toString(); idTrans = table.getValueAt(row, 0).toString(); rowx = row; columnx = column; label = (value == null) ? "" : value.toString(); button.setText(label); isPushed = true; return button; } public Object getCellEditorValue() { if (isPushed) { // // // JOptionPane.showMessageDialog(button, username + ": Ouch!"); // System.out.println(label + ": Ouch!"); showEdit(rowx, columnx); } isPushed = false; return new String(label); } public boolean stopCellEditing() { isPushed = false; return super.stopCellEditing(); } protected void fireEditingStopped() { super.fireEditingStopped(); if (isDeleteRow) { DefaultTableModel tableModel = (DefaultTableModel) table .getModel(); tableModel.removeRow(table.getSelectedRow()); table.addNotify(); // tableModel.fireTableDataChanged(); } isDeleteRow = false; } public void showEdit(int row, int column) { if (column == 4) { Utama ut = new Utama(""); Detail dt = new Detail(ut, "Detail Transaksi", ModalityType.APPLICATION_MODAL, table, dataModel); dt.setVisible(true); } } } class Detail extends JDialog { private JPanel panelDialog = new JPanel(); private Container kontainer = new Container(); private JLabel lblIdTrans = new JLabel("ID Transaksi"); private JLabel lblIdTrans2 = new JLabel(""); private JLabel lblNama = new JLabel("Nama Petugas"); private JLabel lblNama2 = new JLabel(""); private JLabel lblTgl = new JLabel("Tanggal"); private JLabel lblTgl2 = new JLabel(""); private JLabel lblJam = new JLabel("Jam"); private JLabel lblJam2 = new JLabel(""); private JLabel lblTotal = new JLabel("Grand Total"); public JLabel lblTotal2 = new JLabel(""); private DefaultTableModel dataModel = new DefaultTableModel() { @Override public boolean isCellEditable(int row, int column) { return false; } }; private JTable table = new JTable(dataModel); private JScrollPane scroll = new JScrollPane(table); private JPanel panelTransaksi = new JPanel(); private JPanel panelDetailT = new JPanel(); private Container kontainer2; private JButton btnClose = new JButton("Close"); public Detail(Utama owner, String title, ModalityType modal, JTable table1, DefaultTableModel dataModelx) { super(owner, title, modal); super.setSize(500, 420); super.setLocationRelativeTo(null); super.setDefaultCloseOperation(DISPOSE_ON_CLOSE); super.setResizable(false); //super.setVisible(true); panelTransaksi.setLayout(new GridBagLayout()); panelDialog.setLayout(new GridBagLayout()); panelDetailT.setLayout(new FlowLayout()); kontainer2= getContentPane(); kontainer2.setLayout(new FlowLayout()); GridBagConstraints c = new GridBagConstraints(); panelTransaksi.setBorder(BorderFactory.createTitledBorder("Transaksi")); dataModel.addColumn("ID"); dataModel.addColumn("Nama Produk"); dataModel.addColumn("Harga"); dataModel.addColumn("Jumlah"); dataModel.addColumn("Subtotal"); table.setModel(dataModel); c.fill = GridBagConstraints.HORIZONTAL; c.insets = new Insets(10,10,10,10); c.gridx = 0; c.gridy = 0; panelTransaksi.add(lblIdTrans,c); c.gridx = 1; c.gridy = 0; panelTransaksi.add(lblIdTrans2,c); c.gridx = 0; c.gridy = 1; panelTransaksi.add(lblNama,c); c.gridx = 1; c.gridy = 1; panelTransaksi.add(lblNama2,c); c.gridx = 0; c.gridy = 2; panelTransaksi.add(lblTgl,c); c.gridx = 1; c.gridy = 2; panelTransaksi.add(lblTgl2,c); c.gridx = 2; c.gridy = 2; panelTransaksi.add(lblJam,c); c.gridx = 3; c.gridy = 2; panelTransaksi.add(lblJam2,c); scroll.setMaximumSize(new Dimension(470,100)); scroll.setPreferredSize(new Dimension(470,200)); panelDetailT.add(scroll); c.fill = GridBagConstraints.HORIZONTAL; c.insets = new Insets(10,10,10,10); c.gridx = 2; c.gridy = 0; panelDialog.add(lblTotal,c); c.gridx = 3; c.gridy = 0; panelDialog.add(lblTotal2,c); kontainer2.add(panelTransaksi); kontainer2.add(panelDetailT); kontainer2.add(panelDialog); setLabel(table1); //setTable(table1, dataModel); btnClose(); setTable(table1, dataModel); } public void setLabel(JTable table){ lblIdTrans2.setText(table.getValueAt(rowx, 0).toString()); lblNama2.setText(table.getValueAt(rowx, 1).toString()); lblTgl2.setText(table.getValueAt(rowx, 2).toString()); lblJam.setText(table.getValueAt(rowx, 3).toString()); } public void setTable(JTable table1, DefaultTableModel dataModelz){ dTrans.tampilDetail( idTrans, dataModelz, lblTotal2, table1); } public void btnClose(){ btnClose.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { // TODO Auto-generated method stub dispose(); } }); } } }