package com.fr.plugin.db.redis.ui.value; import com.fanruan.api.util.GeneralKit; import com.fanruan.api.design.ui.editor.Editor; import com.fanruan.api.design.ui.component.UIIntNumberField; import com.fanruan.api.design.ui.component.UITextField; import com.fanruan.api.design.util.GUICoreKit; import com.fr.plugin.db.redis.core.order.impl.NumberOrderValue; import com.fanruan.api.util.StringKit; import java.awt.*; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; public class IntegerEditor extends Editor { private static final long serialVersionUID = 1L; protected UIIntNumberField numberField; // text field. protected String oldValue = StringKit.EMPTY; /** * Constructor. */ public IntegerEditor() { this(null, "序号"); } /** * Constructor. */ public IntegerEditor(NumberOrderValue value, String name) { this.setLayout(GUICoreKit.createBorderLayout()); numberField = new UIIntNumberField(); this.add(numberField, BorderLayout.CENTER); this.numberField.addKeyListener(textKeyListener); this.numberField.setHorizontalAlignment(UITextField.RIGHT); this.setValue(value); this.setName(name); } public void setColumns(int columns) { this.numberField.setColumns(columns); } public int getHorizontalAlignment() { return this.numberField.getHorizontalAlignment(); } public void setHorizontalAlignment(int horizontalAlignment) { this.numberField.setHorizontalAlignment(horizontalAlignment); } public void setEnabled(boolean enabled) { this.numberField.setEnabled(enabled); } public void selected() { this.requestFocus(); } public String getIconName() { return "type_double"; } public void requestFocus() { this.numberField.requestFocus(); } KeyListener textKeyListener = new KeyAdapter() { public void keyReleased(KeyEvent evt) { int code = evt.getKeyCode(); if (code == KeyEvent.VK_ESCAPE) { numberField.setText(oldValue); } if (code == KeyEvent.VK_ENTER) { fireEditingStopped(); } else { fireStateChanged(); } } }; @Override public NumberOrderValue getValue() { return new NumberOrderValue((int)this.numberField.getValue()); } @Override public void setValue(NumberOrderValue value) { if (value == null) { value = new NumberOrderValue(0); } this.numberField.setValue(value.getValue()); oldValue = GeneralKit.objectToString(value); } @Override public boolean accept(Object object) { return object != null && object instanceof NumberOrderValue; } }