/** Writes the UiCommonListenerMap for the edited model */ private void writeListenerMap() { logger.log(Type.DEBUG, "Starting to write ListenerMap"); // $NON-NLS-1$ sw.println(); sw.println("@Override"); // $NON-NLS-1$ sw.println( "protected " + UiCommonListenerMap.class.getName() + " getListenerMap() {"); //$NON-NLS-1$ //$NON-NLS-2$ sw.indent(); sw.println( UiCommonListenerMap.class.getName() + " listenerMap = new " + UiCommonListenerMap.class.getName() // $NON-NLS-1$ + "();"); //$NON-NLS-1$ sw.println(); logger.log(Type.DEBUG, "Looking for top-level Editor Fields"); // $NON-NLS-1$ for (EditorData editorData : model.getEditorData()) { logger.log(Type.DEBUG, "Going over Field: " + editorData); // $NON-NLS-1$ String path = editorData.getPath(); // Change first letter to Upper to comply with UiCommon Property Names path = Character.toUpperCase(path.charAt(0)) + path.substring(1, path.length()); if (path.length() == 0) { continue; } // only relevant for top-level properties if (!editorData.isDeclaredPathNested()) { logger.log(Type.DEBUG, "Found top-level Field: " + editorData); // $NON-NLS-1$ sw.println( "listenerMap.addListener(\"%s\", \"PropertyChanged\", new org.ovirt.engine.ui.uicompat.IEventListener() {", //$NON-NLS-1$ path); sw.indent(); sw.println("@Override"); // $NON-NLS-1$ sw.println( "public void eventRaised(org.ovirt.engine.ui.uicompat.Event ev, Object sender, org.ovirt.engine.ui.uicompat.EventArgs args) {"); //$NON-NLS-1$ sw.indent(); sw.println( "getEditor().%s.setValue(getObject()%s);", //$NON-NLS-1$ editorData.getExpression(), editorData.getGetterExpression()); sw.outdent(); sw.println("}"); // $NON-NLS-1$ sw.outdent(); sw.println("});"); // $NON-NLS-1$ sw.println(); } } sw.println("return listenerMap;"); // $NON-NLS-1$ sw.outdent(); sw.println("}"); // $NON-NLS-1$ }