/** Save clear of moneyEntry. */ public void clearMoney() { if (moneyField.getDocument() == moneyDocument) { moneyDocument.clear(); } else { moneyField.setText(""); } }
/** Initialization called by constructors. */ protected void initialize(int size) { // Check desired size if (size <= 0) { size = 7; } // Construct fields moneyField = new LimitedNumberField(size); moneyField.setHorizontalAlignment(SwingConstants.RIGHT); currencyLabel = new JLabel(); // Popup menu JPopupMenu popupMenu = new JPopupMenu(); copyItem = new JMenuItem("Copy"); copyItem.addActionListener(this); popupMenu.add(copyItem); pasteItem = new JMenuItem("Paste"); pasteItem.addActionListener(this); popupMenu.add(pasteItem); popupMenu.add(new JPopupMenu.Separator()); // Default currencies JMenuItem menuItem; defaultMenuItems = new JMenuItem[defaultCurrencies.length]; for (int i = 0; i < defaultCurrencies.length; i++) { menuItem = new CurrencyMenuItem(defaultCurrencies[i]); menuItem.addActionListener(this); popupMenu.add(menuItem); defaultMenuItems[i] = menuItem; } popupMenu.add(new JPopupMenu.Separator()); // european currencies String europeanCurrencies[] = Money.getEuropeanCurrencyList(); europeanCurrenciesMenu = new JMenu("Europe"); for (int i = 0; i < europeanCurrencies.length; i++) { menuItem = new CurrencyMenuItem(europeanCurrencies[i]); menuItem.addActionListener(this); europeanCurrenciesMenu.add(menuItem); if (i == 0) { europeanCurrenciesMenu.add(new JPopupMenu.Separator()); } } popupMenu.add(europeanCurrenciesMenu); // Calculator popupMenu.add(new JPopupMenu.Separator()); calculatorItem = new JMenuItem("Calculator"); calculatorItem.addActionListener(this); popupMenu.add(calculatorItem); // Add the popup moneyPopup = PopupAdapter.create(this.moneyField, popupMenu); KeyStroke SHIFT_F10 = KeyStroke.getKeyStroke(KeyEvent.VK_F10, InputEvent.SHIFT_MASK); moneyField.registerKeyboardAction(this, "popup", SHIFT_F10, JComponent.WHEN_FOCUSED); // Now init documents textDocument = new JTextField().getDocument(); moneyDocument = (LimitedMoneyDocument) moneyField.getDocument(); moneyDocument.addDocumentListener(this); // Layout elements setLayout(new BoxLayout(this, BoxLayout.X_AXIS)); flagLabel = new JLabel(GUI.getMandatoryIcon()); add("West", flagLabel); add("Center", Box.createHorizontalStrut(3)); add(moneyField); add(Box.createHorizontalStrut(GUI.HorizontalLabelDistance)); add(currencyLabel); // Check mandatory and readonly state performFlags(); // Set cursor setCursor(GUI.ENTRY_CURSOR); // Finally set the initial value Money money = new Money(); moneyField.setValue(money, false); currencyLabel.setText(Money.getCurrencyFor(money.getCurrency())); guiInitialized = true; }