return;
}
TestBean bean = new TestBean();
bean.setProperty("original value");
FormModel formModel = new DefaultFormModel(bean);
DirtyIndicatorInterceptor interceptor = new DirtyIndicatorInterceptor(formModel);
assertEquals(formModel, interceptor.getFormModel());
Binding binding = new SwingBindingFactory(formModel).createBinding("property");
JTextField field = (JTextField)binding.getControl();
field.setColumns(25);
assertNotNull("sanity check: binding defines no component", field);
interceptor.processComponent("property", field);
// start a frame to trigger visual updates
JFrame frame = new JFrame("test");
frame.getContentPane().add(field);
frame.pack();
frame.setVisible(true);
// trigger a show of the overlay, so we can get a reference to it
ValueModel valueModel = formModel.getValueModel("property");
valueModel.setValue("dirty");
// sleep for a while so the gui can update itself
Thread.sleep(500);
formModel.revert();
// find a reference to the overlay component
JLayeredPane layeredPane = frame.getRootPane().getLayeredPane();
assertEquals("sanity check: assume the layered pane only has one component, and that it is a panel and the overlay",
2, layeredPane.getComponentCount());