📄 sortableroomlist.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 java.util.List;
// import javax.faces.model.ArrayDataModel;
import net.husthotel.beans.Administrator;
import net.husthotel.beans.Room;
import net.husthotel.datebase.AdminDAO;
/**
* 用于房间表格排序的类.
*
* @author icerain
* @version 1.0
*/
public class SortableRoomList extends SortableList {
private ArrayList<Room> roomList = null;
private boolean markedForEdite = false;
private boolean markedForDelete = false;
private boolean isSortable = true;
public SortableRoomList() {
super("roomNum");
try {
roomList = new AdminDAO().queryRoomInfo();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public String flashDataAction() {
try {
roomList = new AdminDAO().queryRoomInfo();
} 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<Room> comparator = new Comparator<Room>() {
public int compare(Room r1, Room r2) {
if (column == null) {
return 0;
}
if (column.equals("roomNum")) {
return ascending ? r1.getRoomNum().compareTo(
r2.getRoomNum()) : r2.getRoomNum().compareTo(
r1.getRoomNum());
}
if (column.equals("roomType")) {
return ascending ? r1.getRoomStyle().compareTo(
r2.getRoomStyle()) : r2.getRoomStyle().compareTo(
r1.getRoomStyle());
}
if (column.equals("roomState")) {
return ascending ? r1.getRoomState().compareTo(
r2.getRoomState()) : r2.getRoomState().compareTo(
r1.getRoomState());
} else
return 0;
}
};
Collections.sort(roomList, comparator);
}
@Override
protected boolean isDefaultAscending(String s) {
// TODO Auto-generated method stub
return true;
}
public ArrayList getRoomList() {
if (isSortable) {// ---------------
sort(getSort(), isAscending());
}
isSortable = true;
return roomList;
}
// ///////////////////////////////////////////////////////////////////////////////
/**
* 调用AdminDAO.modifyRoomInfo(newRoom...):boolean修改房间信息.
* 修改成功返回"modifyRoomInfoSuccess" or 返回"modifyRoomInfoFail"
*
* @return a string 修改成功返回"modifyRoomInfoSuccess" or 返回"modifyRoomInfoFail".
*/
public boolean modifyRoomInfo(Room r) {
// Add DAO code
try {
if (new AdminDAO().modifyRoomInfo(r)) {
return true;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
public String modifyRoomInfoAction() {
for (Room r : roomList) {
if (r.isEditable()) {
if (!modifyRoomInfo(r))
return "aOperateFail";
}
}
return "aOperateSuc";
}
public String deleteRoomsAction() {
isSortable = false; // -----------判断是否调用Sort方法
if (!getAnyRoomsMarkedForDeletion())
return null;
System.out.println("SortableRoomList:0");
int j = 0;
ArrayList<Room> newRoomList = new ArrayList<Room>();
Administrator admin = new Administrator();
for (Room r : roomList) {
if (r.isDeletable()) { // 标记为删除
if (!admin.deleteRoom(r.getRoomNum())) {// 在数据库中删除数据
return "aOperateFail";
}
} else {
newRoomList.add(j++, r);
}
}
roomList = newRoomList;
return "aOperateSuc";
}
public int getNumOfRoomsMarkerForDeletion() {
int cnt = 0;
for (Room r : roomList) {
if (r.isDeletable())
++cnt;
}
return cnt;
}
public boolean getAnyRoomsMarkedForDeletion() {
for (Room r : roomList) {
if (r.isDeletable())
return true;
}
return false;
}
public boolean getAnyRoomsMarkedForEditable() {
for (Room r : roomList) {
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;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -