📄 productspanel.java
字号:
// Tina POS is a point of sales application designed for touch screens.
// Copyright (C) 2005 Adrian Romero Corchado.
// http://sourceforge.net/projects/tinapos
//
// This program is 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; either version 2 of the License, or
// (at your option) any later version.
//
// This program 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, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
package net.adrianromero.tpv.inventory;
import javax.swing.JButton;
import javax.swing.JComponent;
import net.adrianromero.basic.BasicException;
import net.adrianromero.data.gui.ListCellRendererBasic;
import net.adrianromero.data.loader.ComparatorCreatorBasic;
import net.adrianromero.data.loader.Datas;
import net.adrianromero.data.loader.RenderStringBasic;
import net.adrianromero.data.loader.SentenceList;
import net.adrianromero.data.loader.VectorerBasic;
import net.adrianromero.data.user.BrowsableData;
import net.adrianromero.data.user.BrowsableEditableData;
import net.adrianromero.data.user.EditorListener;
import net.adrianromero.data.user.ListProvider;
import net.adrianromero.data.user.ListProviderCreator;
import net.adrianromero.data.user.SaveProvider;
import net.adrianromero.format.Formats;
import net.adrianromero.tpv.forms.AppLocal;
import net.adrianromero.tpv.forms.AppView;
import net.adrianromero.tpv.forms.SentenceContainer;
import net.adrianromero.tpv.panels.JPanelTable;
import net.adrianromero.tpv.ticket.ProductFilter;
/**
*
* @author adrianromero
* Created on 1 de marzo de 2007, 22:15
*
*/
public class ProductsPanel extends JPanelTable implements EditorListener {
private SentenceList liststock;
private BrowsableData m_bdstock;
private ProductsEditor jeditor;
private ProductFilter jproductfilter;
private StockEditor jeditorstock;
/** Creates a new instance of ProductsPanel2 */
public ProductsPanel(AppView oApp) {
super(oApp);
// el panel del filtro
jproductfilter = new ProductFilter(m_App);
addFilter(jproductfilter);
// El editable data de productos
ListProvider lpr = new ListProviderCreator(oApp.lookupDataLogic(SentenceContainer.class).getProductCatQBF(), jproductfilter);
SaveProvider spr = new SaveProvider(
oApp.lookupDataLogic(SentenceContainer.class).getProductCatUpdate(),
oApp.lookupDataLogic(SentenceContainer.class).getProductCatInsert(),
oApp.lookupDataLogic(SentenceContainer.class).getProductCatDelete());
// el panel del editor
jeditor = new ProductsEditor(m_App);
addEditor(jeditor);
BrowsableEditableData bd = new BrowsableEditableData(lpr, spr, jeditor);
bd.addEditorListener(this); // Esto es nuevoooo
// El editable data del stock
//Listprovider lpr = new ListProvider
liststock = m_App.lookupDataLogic(SentenceContainer.class).getProductStock();
//m_bdstock = new BrowsableEditableData
// El editable data del stock
m_bdstock = new BrowsableData(null, new SaveProvider(
m_App.lookupDataLogic(SentenceContainer.class).getStockUpdate(),
null,
null));
jeditorstock = new StockEditor();
jeditor.setStockEditor(jeditorstock);
initNavigation(bd, jeditor.getDirtyManager(),
new VectorerBasic(
new String[] {"REFERENCE", "CODE", "NAME", "PRICEBUY", "PRICESELL"},
new Formats[] {Formats.STRING, Formats.STRING, Formats.STRING, Formats.CURRENCY, Formats.CURRENCY},
new int[] {0, 1, 2, 5, 6}),
new ComparatorCreatorBasic(
new String[]{"REFERENCE", "CODE", "NAME", "ISCOM", "ISSCALE", "PRICEBUY", "PRICESELL", "CATEGORY", "TAX", "IMAGE", "STOCKCOST", "STOCKVOLUME"},
// El productCatDatas del SentenceContainer, igualito
new Datas[]{Datas.STRING, Datas.STRING, Datas.STRING, Datas.BOOLEAN, Datas.BOOLEAN, Datas.DOUBLE, Datas.DOUBLE, Datas.INT, Datas.INT, Datas.IMAGE, Datas.DOUBLE, Datas.DOUBLE, Datas.BOOLEAN, Datas.INT},
new int[]{0, 1, 2, 5, 6, 7, 8}),
new ListCellRendererBasic(new RenderStringBasic(new Formats[] {Formats.STRING, null, Formats.STRING})));
}
public JComponent getToolbarExtras() {
JButton btnScanPal = new JButton();
btnScanPal.setText("ScanPal");
btnScanPal.setEnabled(m_App.getDeviceScanner() != null);
btnScanPal.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnScanPalActionPerformed(evt);
}
});
return btnScanPal;
}
private void btnScanPalActionPerformed(java.awt.event.ActionEvent evt) {
JDlgUploadProducts.showMessage(this, m_App.getDeviceScanner(), m_bd);
}
public String getTitle() {
return AppLocal.getIntString("Menu.Products");
}
public void activate() throws BasicException {
jeditor.activate();
jproductfilter.activate();
super.activate();
}
public void updateValue(Object value) {
// recargo
try {
m_bdstock.loadList(liststock.list(value));
} catch (BasicException e) {
m_bdstock.loadList(null);
}
jeditorstock.writeValueStock(m_bdstock);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -