📄 transportmanage.java
字号:
package GUI;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Table;
import com.swtdesigner.SWTResourceManager;
import java.util.Date;
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 Dbprocess.*;
import java.sql.*;
import Staff.*;
public class TransportManage extends Composite {
Staffmanage sm;
private Table table;
final MyTableViewer myTableViewer;
/**
* Create the composite
* @param parent
* @param style
*/
public TransportManage(final Composite parent, int style) {
super(parent, style);
final Label label = new Label(this, SWT.NONE);
label.setFont(SWTResourceManager.getFont("", 16, SWT.BOLD));
label.setText("待送定单");
label.setBounds(10, 10, 283, 30);
myTableViewer = new MyTableViewer(this, SWT.BORDER|SWT.FULL_SELECTION);
myTableViewer.draw();
final Button button = new Button(this, SWT.NONE);
button.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
if(table.getSelectionCount()==0){
MessageDialog.openError(parent.getShell(), "错误","请选择一条记录");
}
else{
Date date= new Date();
Timestamp ts = new Timestamp(date.getTime());
(table.getItem(table.getSelectionIndex())).setText(2,ts.toString());
}
}
});
button.setText("开始送货");
button.setBounds(50, 412, 65, 22);
final Button button_1 = new Button(this, SWT.NONE);
button_1.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
if(table.getSelectionCount()==0){
MessageDialog.openError(parent.getShell(), "错误","请选择一条记录");
}
try{
if(!table.getItem(table.getSelectionIndex()).getText(2).equals("")){
Timestamp ts1;
ts1 = Timestamp.valueOf(table.getItem(table.getSelectionIndex()).getText(2));
String saleid = table.getItem(table.getSelectionIndex()).getText(0);
String staffid = table.getItem(table.getSelectionIndex()).getText(1);
Date date = new Date();
Timestamp ts2 = new Timestamp(date.getTime());
int wage;
if(((ts2.getTime()-ts1.getTime())/1000/60)<=30){
wage = 5;
}
else if(((ts2.getTime()-ts1.getTime())/1000/60)>60){
wage =0;
}
else{
wage = 3;
}
DBmanager dbm = new DBmanager();
Connection con = dbm.getCon();
String sql = "Update staffsent set senttime = ? , backtime = ? , wage = ? WHERE saleid = ? AND staffid = ?";
PreparedStatement ps = con.prepareStatement(sql);
ps.setTimestamp(1,ts1);
ps.setTimestamp(2,ts2);
ps.setInt(3, wage);
ps.setString(4, saleid);
ps.setString(5, staffid);
ps.executeUpdate();
myTableViewer.draw();
}
else{
MessageDialog.openError(parent.getShell(), "错误","该定单并未送出");
}
}
catch(Exception e1){
e1.printStackTrace();
}
}
});
button_1.setText("送货完成");
button_1.setBounds(205, 412, 65, 22);
final Button button_2 = new Button(this, SWT.NONE);
button_2.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
myTableViewer.draw();
}
});
button_2.setText("刷新");
button_2.setBounds(309, 411, 44, 25);
//
}
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("销售ID");
final TableColumn newColumnTableColumn_1 = new TableColumn(table, SWT.NONE);
newColumnTableColumn_1.setWidth(100);
newColumnTableColumn_1.setText("员工ID");
final TableColumn newColumnTableColumn_2 = new TableColumn(table, SWT.NONE);
newColumnTableColumn_2.setWidth(250);
newColumnTableColumn_2.setText("开始送货时间");
this.setContentProvider(new MyContentProvider()); //内容器
this.setLabelProvider(new MyLabelProvider()); //标签器
}
public void draw(){
Staffmanage sm2 = new Staffmanage();
this.setInput(sm2.getStaffSent());
}
}
/**
* 内容器(写成了一个内部类). 在这里对所有记录集中的记录进行处理
*/
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) {
StaffSent s = (StaffSent) element; //转换一下类型
if (col == 0)
return s.getSaleid();
if (col == 1)
return s.getStaffid();
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 Staffmanage getSm() {
return sm;
}
public void setSm(Staffmanage sm) {
this.sm = sm;
}
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 + -