📄 datasource.java
字号:
result = new Integer(-1); } break; case 1: result = order.getUserId(); break; case 2: result = order.getDate(); break; case 3: result = new Float(order.getAmount()); break; case 4: result = order.getStatus(); break; default: System.err.println("This shouldn't happen: (" + column + "). Defaulting to null value"); } return result; } public Class getColumnClass(int column) { Class result = Object.class; switch (column) { case 0: result = Integer.class; break; case 1: result = String.class; break; case 2: result = Date.class; break; case 3: result = Float.class; break; case 4: result = String.class; break; default: System.err.println("This shouldn't happen: (" + column + "). Defaulting to Object.class"); } return result; } public int getRowCount() { if (indexMapping != null) { return indexMapping.length; } return 0; } /** * Do not allow setting of data in view mode. */ public boolean isCellEditable(int row, int column) { return false; } } /** * This class is used to modify orders with the status of PENDING. The new * status of the orders can either be APPROVED or DENIED. These changes * will then be send back to the server, or cached until a network * connection is available. */ protected class OrdersApproveTableModel extends OrdersViewTableModel { public OrdersApproveTableModel() { super(); statusList = new String[] { PetStoreProxy.Order.PENDING }; } public void commit() { Vector approvedRows = new Vector(); Vector deniedRows = new Vector(); for (int i = 0; i < getRowCount(); i++) { if (PetStoreProxy.Order.APPROVED.equals( (String)getValueAt(i, 4))) { approvedRows.add(new Integer(i)); } else if (PetStoreProxy.Order.DENIED.equals( (String)getValueAt(i, 4))) { deniedRows.add(new Integer(i)); } } // Return if we don't have anything to update. if (approvedRows.size() == 0 && deniedRows.size() == 0) { return; } final PetStoreProxy.Order[] approvedOrders = new PetStoreProxy.Order[approvedRows.size()]; int row; for (int i = 0; i < approvedRows.size(); i++) { row = ((Integer)approvedRows.elementAt(i)).intValue(); approvedOrders[i] = orders[indexMapping[row]]; } final PetStoreProxy.Order[] deniedOrders = new PetStoreProxy.Order[deniedRows.size()]; for (int i = 0; i < deniedRows.size(); i++) { row = ((Integer)deniedRows.elementAt(i)).intValue(); deniedOrders[i] = orders[indexMapping[row]]; } ServerAction action = new ServerAction() { public void actionPerformed(final ActionEvent action) { // Notify listener to disable actions. pcs.firePropertyChange(DISABLE_ACTIONS, null, null); StatusBar.getInstance().setMessage( PetStoreAdminClient.getString("Status.update")); super.actionPerformed(action); } protected Object request(ActionEvent e) { if (approvedOrders.length > 0) { server.updateStatus(approvedOrders, PetStoreProxy.Order.APPROVED); } if (deniedOrders.length > 0) { server.updateStatus(deniedOrders, PetStoreProxy.Order.DENIED); } return getServerOrderData(); } protected void response(Object requestValue) { orders = (PetStoreProxy.Order[])requestValue; if (ordersViewTableModel != null) { ordersViewTableModel.updateModel(); } if (ordersApproveTableModel != null) { ordersApproveTableModel.updateModel(); } StatusBar.getInstance().setMessage(null); // Notify listener to enable actions. pcs.firePropertyChange(ENABLE_ACTIONS, null, null); } protected void handleException(Exception e) { e.printStackTrace(); fatalServerError(e.getMessage()); } }; action.actionPerformed(null); } public boolean isCellEditable(int row, int column) { // Only the status column is editable. boolean result = false; if (column == 4) { result = true; } return result; } public void setValueAt(Object value, final int row, int column) { final PetStoreProxy.Order order = orders[indexMapping[row]]; final String val = (String)value; // Update the order manually since we don't want to refresh // all the data. orders[indexMapping[row]] = new PetStoreProxy.Order( order.getId(), order.getUserId(), order.getDate(), order.getAmount(), val); fireTableRowsUpdated(row, row); } } public abstract class ChartModel { /** The default start date is 1/12/2001 for the demo. TODO In the * released application this should default to the present day. */ private Date startDate = new Date("1/1/2001"); /** The default end date is the present day. */ private Date endDate = new Date("12/31/2002"); /** The default view mode is the top level view. */ private String viewMode = null; protected String keys[]; protected PetStoreProxy.Sales[] sales; public ChartModel() { } public String[] getKeys() { if (sales == null) { return null; } if (keys == null) { keys = new String[sales.length]; for (int i = 0; i < keys.length; i++) { keys[i] = sales[i].getKey(); } } return keys; } /** * Returns the revenue associated with a particular category. */ public float getOrders(String category) { if (sales == null) { return 0f; } float result = 0f; for (int i = 0; i < sales.length; i++) { if (sales[i].getKey().equals(category)) { result = sales[i].getOrders(); } } return result; } /** * Returns the revenue associated with a particular category. */ public float getRevenue(String category) { if (sales == null) { return 0f; } float result = 0f; for (int i = 0; i < sales.length; i++) { if (sales[i].getKey().equals(category)) { result = sales[i].getRevenue(); } } return result; } /** * Returns the current category we are using for the view mode. If the * returned value is null we are using the top level view. */ public String getViewMode() { return viewMode; } public Date getStartDate() { return (Date)startDate.clone(); } public Date getEndDate() { return (Date)endDate.clone(); } public void setDates(Date startDate, Date endDate) { this.startDate = startDate; this.endDate = endDate; new RefreshChartAction(this).actionPerformed(null); } private class RefreshChartAction extends ServerAction { private ChartModel chartModel; public RefreshChartAction(ChartModel chartModel) { this.chartModel = chartModel; } public void actionPerformed(final ActionEvent action) { // Notify listener to disable actions. pcs.firePropertyChange(DISABLE_ACTIONS, null, null); StatusBar.getInstance().setMessage( PetStoreAdminClient.getString("Status.retrieve")); super.actionPerformed(action); } protected Object request(ActionEvent e) { return getServerChartData(); } protected void response(Object requestValue) { if (chartModel instanceof PieChartModel) { pieChartSales = (PetStoreProxy.Sales[])requestValue; } else if (chartModel instanceof BarChartModel) { barChartSales = (PetStoreProxy.Sales[])requestValue; } updateModel(); StatusBar.getInstance().setMessage(null); // Notify listener to enable actions. pcs.firePropertyChange(ENABLE_ACTIONS, null, null); } protected void handleException(Exception e) { e.printStackTrace(); fatalServerError(e.getMessage()); } } protected abstract PetStoreProxy.Sales[] getServerChartData(); protected abstract void updateModel(); } public class PieChartModel extends ChartModel { public PieChartModel() { super(); } protected PetStoreProxy.Sales[] getServerChartData() { return getServerPieChartData(); } protected void updateModel() { // Update the reference to the sales array. sales = pieChartSales; // Reset the keys to null. keys = null; // Notify listeners that the pie chart data has changed. pcs.firePropertyChange(PIE_CHART_DATA_CHANGED, null, null); } } public class BarChartModel extends ChartModel { public BarChartModel() { super(); } protected PetStoreProxy.Sales[] getServerChartData() { return getServerBarChartData(); } protected void updateModel() { // Update the reference to the sales array. sales = barChartSales; // Reset the keys to null. keys = null; // Notify listeners that the bar chart data has changed. pcs.firePropertyChange(BAR_CHART_DATA_CHANGED, null, null); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -