📄 sortableorderlist.java
字号:
/*
* @(#)SortableOrderList.java 1.0 05/10/10
*
* Copyright 2005 HUST Hotel, Inc. All rights reserved.
*/
package net.husthotel.sort;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import net.husthotel.beans.Operator;
import net.husthotel.beans.Order;
import net.husthotel.datebase.OperatorDAO;
/**
* 用于订单表格排序的类.
*
* @author icerain
* @version 1.0
*/
public class SortableOrderList extends SortableList {
private ArrayList<Order> orderList = null;
private boolean markedForEdite = false;
private boolean markedForDelete = false;
private boolean operateSuccessful = false;
private String operateMsg1 = null;
private String operateMsg2 = null;
private boolean isSortable = true;
public SortableOrderList() {
super("orderNum");
try {
orderList = new OperatorDAO().queryOrder();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public String flashDataAction() {
try {
orderList = new OperatorDAO().queryOrder();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
return null;
}
@Override
protected void sort(final String column, final boolean ascending) {
// TODO Auto-generated method stub
Comparator<Order> comparator = new Comparator<Order>() {
public int compare(Order o1, Order o2) {
if (column == null) {
return 0;
}
if (column.equals("orderNum")) {
return ascending ? o1.getOrderNum().compareTo(
o2.getOrderNum()) : o2.getOrderNum().compareTo(
o1.getOrderNum());
}
if (column.equals("roomNum")) {
return ascending ? o1.getRoomNum().compareTo(
o2.getRoomNum()) : o2.getRoomNum().compareTo(
o1.getRoomNum());
}
if (column.equals("checkinDate")) {
return ascending ? o1.getCheckinDate().compareTo(
o2.getCheckinDate()) : o2.getCheckinDate()
.compareTo(o1.getCheckinDate());
}
if (column.equals("checkoutDate")) {
return ascending ? o1.getCheckoutDate().compareTo(
o2.getCheckoutDate()) : o2.getCheckoutDate()
.compareTo(o1.getCheckoutDate());
}
if (column.equals("roomType")) {
return ascending ? o1.getRoomType().compareTo(
o2.getRoomType()) : o2.getRoomType().compareTo(
o1.getRoomType());
}
if (column.equals("name")) {
return ascending ? o1.getName().compareTo(o2.getName())
: o2.getName().compareTo(o1.getName());
} else
return 0;
}
};
Collections.sort(orderList, comparator);
}
@Override
protected boolean isDefaultAscending(String s) {
// TODO Auto-generated method stub
return true;
}
public ArrayList getOrderList() {
if (isSortable) {// ---------------
sort(getSort(), isAscending());
}
isSortable = true;
return orderList;
}
// ///////////////////////////////////////////////////////////////////////////////
/**
* 调用OperatorDAO.modifyOrderInfo(newOrder...):boolean修改房间信息.
* 修改成功返回"modifyOrderInfoSuccess" or 返回"modifyOrderInfoFail"
*
* @return a string 修改成功返回"modifyOrderInfoSuccess" or
* 返回"modifyOrderInfoFail".
*/
public boolean modifyOrderInfo(Order r) {
// Add DAO code
try {
if (new OperatorDAO().modifyOrder(r)) {
System.out.println("SortableOrderList:modifyOrderInfo.");
return true;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
System.out
.println("SortableOrderList:modifyOrderInfo.SqlException");
e.printStackTrace();
}
System.out.println("SortableOrderList:modifyOrderInfo.false");
return false;
}
public String modifyOrderInfoAction() {
for (Order r : orderList) {
if (r.isEditable()) {
if (!modifyOrderInfo(r)) {
setOperateSuccessful(false);
setOperateMsg2("操作失败!请检查输入数据格式是否正确.");
return "OperateFail";
}
r.setEditable(false); // 把 标志 修改状态改过来
}
}
setOperateSuccessful(true);
setOperateMsg1("操作成功!");
return "OperateSuc";
}
public String deleteOrdersAction() {
isSortable = false; // -----------判断是否调用Sort方法
if (!getAnyOrdersMarkedForDeletion())
return null;
System.out.println("SortableOrderList:0");
int j = 0;
ArrayList<Order> newOrderList = new ArrayList<Order>();
Operator operator = new Operator();
for (Order r : orderList) {
if (r.isDeletable()) { // 标记为删除
if (!operator.deleteOrder(r.getOrderNum())) {// 在数据库中删除数据
return "oOperateFail";
}
} else {
newOrderList.add(j++, r);
}
}
orderList = newOrderList;
return "oOperateSuc";
}
public int getNumOfOrdersMarkerForDeletion() {
int cnt = 0;
for (Order r : orderList) {
if (r.isDeletable())
++cnt;
}
return cnt;
}
public boolean getAnyOrdersMarkedForDeletion() {
for (Order r : orderList) {
if (r.isDeletable())
return true;
}
return false;
}
public boolean getAnyOrdersMarkedForEditable() {
for (Order r : orderList) {
if (r.isEditable())
return true;
}
return false;
}
public boolean isMarkedForDelete() {
return markedForDelete;
}
public void setMarkedForDelete(boolean markedForDelete) {
this.markedForDelete = markedForDelete;
}
public boolean isMarkedForEdite() {
return markedForEdite;
}
public void setMarkedForEdite(boolean markedForEdite) {
this.markedForEdite = markedForEdite;
}
public boolean isOperateSuccessful() {
operateSuccessful = !operateSuccessful;
return (!operateSuccessful);
}
public void setOperateSuccessful(boolean operateSuccessful) {
this.operateSuccessful = operateSuccessful;
}
public String getOperateMsg1() {
return operateMsg1;
}
public void setOperateMsg1(String operateMsg1) {
this.operateMsg1 = operateMsg1;
}
public String getOperateMsg2() {
return operateMsg2;
}
public void setOperateMsg2(String operateMsg2) {
this.operateMsg2 = operateMsg2;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -