📄 storageupdate.java
字号:
package GUI;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Table;
import java.util.List;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.TableLayout;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.jface.dialogs.*;
import org.eclipse.swt.widgets.FileDialog;
import Dbprocess.*;
import Storage.*;
import org.eclipse.swt.widgets.TabFolder;
import org.eclipse.swt.widgets.TabItem;
import java.io.*;
import java.util.*;
public class StorageUpdate extends Composite {
private Table table;
final MyTableViewer myTableViewer;
final MyTableViewer warnning;
/**
* Create the composite
* @param parent
* @param style
*/
public StorageUpdate(final Composite parent, int style) {
super(parent, style);
final TabFolder tabFolder = new TabFolder(this, SWT.NONE);
tabFolder.setBounds(0, 0, 580, 501);
final TabItem tabItem = new TabItem(tabFolder, SWT.NONE);
tabItem.setText("查看系统警报");
final Composite systemWarningCom = new Composite(tabFolder, SWT.NONE);
tabItem.setControl(systemWarningCom);
final Label label = new Label(systemWarningCom, SWT.NONE);
label.setText("以下商品库存已不足");
label.setBounds(10, 10, 143, 26);
warnning = new MyTableViewer(systemWarningCom, SWT.BORDER|SWT.FULL_SELECTION);
warnning.draw(new StorageManager().getStorageWarnning());
final Button button2 = new Button(systemWarningCom, SWT.NONE);
button2.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
warnning.draw(new StorageManager().getStorageWarnning());
}
});
button2.setText("刷新");
button2.setBounds(492, 30, 48, 22);
final TabItem tabItem_1 = new TabItem(tabFolder, SWT.NONE);
tabItem_1.setText("库存报告");
final Composite storageReportCom = new Composite(tabFolder, SWT.NONE);
tabItem_1.setControl(storageReportCom);
final TabItem tabItem_2 = new TabItem(tabFolder, SWT.NONE);
tabItem_2.setText("添加库存");
final Composite storageUpdateCom = new Composite(tabFolder, SWT.NONE);
tabItem_2.setControl(storageUpdateCom);
final Button button_1 = new Button(storageUpdateCom, SWT.NONE);
button_1.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
FileDialog dlg = new FileDialog(parent.getShell(),SWT.OPEN);
dlg.setFilterNames(new String[]{"文本文件(*.txt)"});
dlg.setFilterExtensions(new String[]{"*.txt","*.*"});
String filename = dlg.open();
DBmanager dbm = new DBmanager();
int total=0;
try {
// FileReader reader = ;
BufferedReader bf = new BufferedReader(new FileReader(filename));
String temp="";
while((temp=bf.readLine())!=null){
StorageItem si = new StorageItem();
StringTokenizer st = new StringTokenizer(temp,",",false);
if(st.countTokens()==4){
si.setName(st.nextToken());
String s = st.nextToken();
if(s.equals("1"))
si.setType("Thick Pan");
else if(s.equals("2"))
si.setType("Thin Pan");
si.setSize(st.nextToken()+"'");
si.setQuantity(Integer.valueOf(st.nextToken()).intValue());
dbm.updateDB(si);
total++;
}
}
String str = "一共更新了" + total + "条记录";
MessageDialog.openInformation(parent.getShell(),"更新完成",str);
dbm.close();
} catch (FileNotFoundException e2) {
e2.printStackTrace();
} catch (IOException e3) {
e3.printStackTrace();
}
}
});
button_1.setText("选择添加PIZZA信息文件");
button_1.setBounds(24, 43, 141, 22);
myTableViewer = new MyTableViewer(storageReportCom, SWT.BORDER|SWT.FULL_SELECTION);
final Button button = new Button(storageReportCom, SWT.NONE);
button.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
myTableViewer.draw(new StorageManager().getStorageRecord());
}
});
button.setText("刷新");
button.setBounds(492, 30, 48, 22);
final Label label_1 = new Label(storageReportCom, SWT.NONE);
label_1.setText("现有库存量");
label_1.setBounds(10, 10, 69, 12);
myTableViewer.draw(new StorageManager().getStorageRecord());
//
}
public class MyTableViewer extends TableViewer{
public MyTableViewer(Composite com,int style){
super(com,style);
table = this.getTable();
table.setBounds(10, 46, 405, 326);
table.setRedraw(true);
table.setHeaderVisible(true); //表头显示
table.setLinesVisible(true); //表格线显示
TableLayout tLayout = new TableLayout();
table.setLayout(tLayout);
final TableColumn newColumnTableColumn = new TableColumn(table, SWT.NONE);
newColumnTableColumn.setWidth(100);
newColumnTableColumn.setText("名称");
final TableColumn newColumnTableColumn_1 = new TableColumn(table, SWT.NONE);
newColumnTableColumn_1.setWidth(100);
newColumnTableColumn_1.setText("类型");
final TableColumn newColumnTableColumn_2 = new TableColumn(table, SWT.NONE);
newColumnTableColumn_2.setWidth(100);
newColumnTableColumn_2.setText("大小");
final TableColumn newColumnTableColumn_3 = new TableColumn(table, SWT.NONE);
newColumnTableColumn_3.setWidth(100);
newColumnTableColumn_3.setText("数量");
this.setContentProvider(new MyContentProvider()); //内容器
this.setLabelProvider(new MyLabelProvider()); //标签器
}
public void draw(List lis){
this.setInput(lis);
}
}
/**
* 内容器(写成了一个内部类). 在这里对所有记录集中的记录进行处理
*/
private static final class MyContentProvider implements IStructuredContentProvider {
public Object[] getElements(Object element) {
if (element instanceof List)
return ((List) element).toArray();//将List转化为数组
else
return new Object[0];//否则,返回一个空数组
}
public void dispose() {}
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {}
}
/**
* 标签器(写成了一个内部类).在这里对单条记录进行处理
*/
private static final class MyLabelProvider implements ITableLabelProvider {
/**
* 这个方法返回的是各列的记录的文字
* 参数1:输入的对象
* 参数2:列号
* 返回值:注意一定要避免Null值,否则出错
*/
public String getColumnText(Object element, int col) {
StorageItem s = (StorageItem) element; //转换一下类型
if (col == 0)
return s.getName();
if (col == 1)
return s.getType();
if (col == 2)
return s.getSize();
if (col == 3)
return Integer.toString(s.getQuantity());
return "";
}
/**
* 返回每条记录前面的图标
*/
public Image getColumnImage(Object element, int columnIndex) {
return null;
}
//-------------以下方法用处不大,暂时不管它-----------------
public void addListener(ILabelProviderListener listener) {}
public void dispose() {}
public boolean isLabelProperty(Object element, String property) {
return false;
}
public void removeListener(ILabelProviderListener listener) {}
}
public void dispose() {
super.dispose();
}
protected void checkSubclass() {
// Disable the check that prevents subclassing of SWT components
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -