001 /* 002 * Copyright 2002-2004 the original author or authors. 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); you may not 005 * use this file except in compliance with the License. You may obtain a copy of 006 * the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 012 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 013 * License for the specific language governing permissions and limitations under 014 * the License. 015 */ 016 package org.springframework.richclient.form.binding.swing; 017 018 import javax.swing.JTextField; 019 020 import org.springframework.binding.form.FieldMetadata; 021 022 public class TextComponentBindingAbstractTests extends BindingAbstractTests { 023 024 private JTextField tc; 025 026 private TextComponentBinding b; 027 028 protected String setUpBinding() { 029 b = new TextComponentBinding(new JTextField(), fm, "simpleProperty"); 030 tc = (JTextField)b.getControl(); 031 return "simpleProperty"; 032 } 033 034 public void testComponentTracksEnabledChanges() { 035 assertEquals(true, tc.isEnabled()); 036 fm.setEnabled(false); 037 assertEquals(false, tc.isEnabled()); 038 fm.setEnabled(true); 039 assertEquals(true, tc.isEnabled()); 040 } 041 042 public void testComponentTracksReadOnlyChanges() { 043 FieldMetadata state = fm.getFieldMetadata("simpleProperty"); 044 assertEquals(true, tc.isEditable()); 045 state.setReadOnly(true); 046 assertEquals(false, tc.isEditable()); 047 state.setReadOnly(false); 048 assertEquals(true, tc.isEditable()); 049 } 050 051 public void testComponentUpdatesValueModel() { 052 tc.setText("1"); 053 assertEquals("1", vm.getValue()); 054 tc.setText(null); 055 assertEquals("", vm.getValue()); 056 tc.setText("2"); 057 assertEquals("2", vm.getValue()); 058 tc.setText(""); 059 assertEquals("", vm.getValue()); 060 } 061 062 public void testValueModelUpdatesComponent() { 063 vm.setValue("1"); 064 assertEquals("1", tc.getText()); 065 vm.setValue(null); 066 assertEquals("", tc.getText()); 067 vm.setValue("2"); 068 assertEquals("2", tc.getText()); 069 vm.setValue(""); 070 assertEquals("", tc.getText()); 071 } 072 }