1 7 8 package com.memoire.vainstall.builder.gui; 9 10 import com.memoire.vainstall.builder.VAIProductModel; 11 12 import java.awt.Color ; 13 14 import javax.swing.BorderFactory ; 15 import javax.swing.JTextField ; 16 import javax.swing.border.Border ; 17 import javax.swing.event.DocumentEvent ; 18 import javax.swing.event.DocumentListener ; 19 20 28 public class RequiredTextField extends JTextField implements DocumentListener { 29 30 private VAIProductModel productModel; 31 private String requirementName; 32 33 private Border oldBorder; 34 35 private Border greenBorder = BorderFactory.createMatteBorder(1, 1, 1, 1, Color.green); 36 private Border redBorder = BorderFactory.createMatteBorder(1, 1, 1, 1, Color.red); 37 38 private boolean hasChanged = false; 39 40 public RequiredTextField() { 41 42 oldBorder = getBorder(); 43 44 setBorder(redBorder); 45 46 getDocument().addDocumentListener(this); 47 48 } 49 50 53 public void initialize(VAIProductModel model, String requirementName) { 54 this.productModel = model; 55 this.requirementName = requirementName; 56 } 57 58 public void changedUpdate(DocumentEvent e) { 59 } 60 61 public void insertUpdate(DocumentEvent e) { 62 63 if (productModel == null) { 64 return; 65 } 66 67 if (getText().length() > 0) { 68 productModel.removeRequirement(requirementName); 69 setBorder(greenBorder); 70 } else { 71 productModel.addRequirement(requirementName); 72 setBorder(redBorder); 73 } 74 hasChanged = true; 75 } 76 77 public void removeUpdate(DocumentEvent e) { 78 79 if (productModel == null) { 80 return; 81 } 82 83 if (getText().length() > 0) { 84 productModel.removeRequirement(requirementName); 85 setBorder(greenBorder); 86 } else { 87 productModel.addRequirement(requirementName); 88 setBorder(redBorder); 89 } 90 hasChanged = true; 91 } 92 93 public boolean hasChanged() { 94 return hasChanged; 95 } 96 97 public void setChanged(boolean change) { 98 hasChanged = change; 99 } 100 } 101 | Popular Tags |