/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.kapti.administration.actions; import com.kapti.administration.MainFrame; import com.kapti.client.finance.Exchange; import com.kapti.client.finance.FinanceFactory; import com.kapti.client.finance.Index; import com.kapti.exceptions.StockPlayException; import java.util.ArrayList; import java.util.Collection; import java.util.ResourceBundle; import javax.swing.Action; import javax.swing.ImageIcon; import org.jdesktop.swingx.JXErrorPane; import org.jdesktop.swingx.error.ErrorInfo; /** * * @author Thijs */ public class ActionsFactory { private final ResourceBundle translations = ResourceBundle.getBundle("com/kapti/administration/translations"); private static ActionsFactory instance = new ActionsFactory(); private static FinanceFactory financeFactory = FinanceFactory.getInstance(); private ActionsFactory() { } public static ActionsFactory getInstance() { return instance; } Collection<Action> statusActions = null; Collection<Action> securitiesActions = null; Collection<Action> usersActions = null; public Collection<Action> getStatusActions() { if (statusActions == null) { statusActions = new ArrayList<Action>(); Action firstTitle = new ShowStatusAction(translations.getString("COMPONENTSMENU"), createImageIcon("server.png"), true); firstTitle.putValue(Layout.LEAVE_SPACE, false); statusActions.add(firstTitle); statusActions.add(new ShowStatusAction(translations.getString("SCRAPERMENUITEM"), createImageIcon("world.png"))); statusActions.add(new ShowStatusAction(translations.getString("DATABASEMENUITEM"), createImageIcon("database.png"))); statusActions.add(new ShowStatusAction(translations.getString("WEBSERVER"), createImageIcon("server.png"))); statusActions.add(new ShowStatusAction(translations.getString("STATUSMENU"), createImageIcon("server.png"), true)); } return statusActions; } public Collection<Action> getSecuritiesActions() { if (securitiesActions == null) { securitiesActions = new ArrayList<Action>(); Action firstTitle = new ShowSecuritiesAction(translations.getString("EXCHANGESMENUITEM"), createImageIcon("money.png"), true); firstTitle.putValue(Layout.LEAVE_SPACE, false); securitiesActions.add(firstTitle); Collection<Exchange> exchanges = null; try { exchanges = financeFactory.getAllExchanges(); for (Exchange exch : exchanges) { securitiesActions.add(new ShowSecuritiesByExchangeAction(exch.getName(), createImageIcon("money_euro.png"), exch)); } } catch (StockPlayException ex) { JXErrorPane.showDialog(MainFrame.getInstance(), new ErrorInfo(translations.getString("ERROR_COMMUNICATION"), translations.getString("ERROR_FETCH_EXCHANGES"), null, null, ex, null, null)); } securitiesActions.add(new ShowSecuritiesAction(translations.getString("INDEXESMENUITEM"), createImageIcon("money.png"), true)); Collection<Index> indexes = null; try { indexes = financeFactory.getAllIndexes(); for (Index index : indexes) { securitiesActions.add(new ShowSecuritiesByIndexAction(index.getName(), createImageIcon("money_euro.png"), index)); } } catch (StockPlayException ex) { JXErrorPane.showDialog(MainFrame.getInstance(), new ErrorInfo(translations.getString("ERROR_COMMUNICATION"), translations.getString("ERROR_FETCH_EXCHANGES"), null, null, ex, null, null)); } } return securitiesActions; } public Collection<Action> getUsersActions() { if (usersActions == null) { usersActions = new ArrayList<Action>(); Action firstTitle = new ShowAllUsersAction(translations.getString("OVERVIEWMENUITEM"), createImageIcon("folder_user.png"), true); firstTitle.putValue(Layout.LEAVE_SPACE, false); usersActions.add(firstTitle); usersActions.add(new ShowAllUsersAction(translations.getString("SEARCH_ALFABETHICALLYMENUITEM"), createImageIcon("folder_user.png"), true)); usersActions.add(new ShowUsersByLettersAction(translations.getString("A-E_MENUITEM"), createImageIcon("group.png"), 'a', 'e')); usersActions.add(new ShowUsersByLettersAction(translations.getString("F-J_MENUITEM"), createImageIcon("group.png"), 'f', 'j')); usersActions.add(new ShowUsersByLettersAction(translations.getString("K-O_MENUITEM"), createImageIcon("group.png"), 'k', 'o')); usersActions.add(new ShowUsersByLettersAction(translations.getString("P-S_MENUITEM"), createImageIcon("group.png"), 'p', 's')); usersActions.add(new ShowUsersByLettersAction(translations.getString("T-Z_MENUITEM"), createImageIcon("group.png"), 't', 'z')); usersActions.add(new ShowAllUsersAction(translations.getString("SEARCH_BY_REGDATE_MENUITEM"), createImageIcon("folder_user.png"), true)); usersActions.add(new ShowUsersByRegdateAction(translations.getString("TODAYMENUITEM"), createImageIcon("group.png"), 1000 * 60 * 60 * 24)); usersActions.add(new ShowUsersByRegdateAction(translations.getString("PASTWEEKMENUITEM"), createImageIcon("group.png"), 1000 * 60 * 60 * 24 * 7)); usersActions.add(new ShowUsersByRegdateAction(translations.getString("PASTMONTHITEM"), createImageIcon("group.png"), 1000 * 60 * 60 * 24 * 31)); usersActions.add(new ShowUsersByRegdateAction(translations.getString("PASTYEARITEM"), createImageIcon("group.png"), 1000 * 60 * 60 * 24 * 365)); } return usersActions; } protected ImageIcon createImageIcon(String path) { java.net.URL imgURL = getClass().getResource("/com/kapti/administration/images/" + path); if (imgURL != null) { return new ImageIcon(imgURL); } else { System.err.println(translations.getString("ERROR_FILE_UNFINDABLE") + path); return null; } } }