// Дата последней ревизии $Date: 2008-02-04 18:52:02 +0300 (Пн, 04 фев 2008) $ // Дата последней проверки YYYY-MM-DD package com.bftcom.fdt.ui.containers.standart.entity; import com.bftcom.fdt.ui.components.base.VisualComponent; import com.bftcom.fdt.ui.containers.common.actions.ActionDecorator; import com.bftcom.fdt.ui.containers.common.actions.DefaultCancelAction; import com.bftcom.fdt.ui.containers.common.actions.DefaultCloseAction; import com.bftcom.fdt.ui.containers.common.actions.DefaultCreateAction; import com.bftcom.fdt.ui.containers.common.actions.DefaultHelpAction; import com.bftcom.fdt.ui.containers.common.actions.DefaultSaveAction; import com.bftcom.fdt.ui.containers.standart.StandartForm; import com.bftcom.fdt.ui.forms.requests.FormDirector; import java.awt.event.ActionEvent; import javax.swing.Action; import javax.swing.JOptionPane; /** * TODO: требуется документирование */ public abstract class BasicEntityForm extends StandartForm implements BasicEntityFormViewInterface { public final static String COMMAND_KEY = "command"; public BasicEntityForm() { } /** * Возвращает заголовок в режиме просмотра записи. * @return Заголовок. */ protected abstract String getViewTitle(); /** * Возвращает заголовок в режиме редактирования записи. * @return Заголовок. */ protected abstract String getEditTitle(); /** * Возвращает заголовок в режиме создания записи. * @return Заголовок. */ protected abstract String getCreateTitle(); @Override protected void registerTitles() { super.registerTitles(); addTitleForMode(getCreateTitle(), StandartEntityFormModes.Create.class); addTitleForMode(getCreateTitle(), StandartEntityFormModes.CreateCopy.class); addTitleForMode(getEditTitle(), StandartEntityFormModes.Edit.class); addTitleForMode(getViewTitle(), StandartEntityFormModes.View.class); } public class HelpAction extends DefaultHelpAction { public final static String COMMAND_VALUE = "help"; private final static long serialVersionUID = -1; public HelpAction() { putValue(COMMAND_KEY, COMMAND_VALUE); } @Override protected void performAction() { showHelp(); } } protected void showHelp() { throw new UnsupportedOperationException("Not supported yet."); } public class CloseAction extends DefaultCloseAction { public final static String COMMAND_VALUE = "close"; public CloseAction() { putValue(COMMAND_KEY, COMMAND_VALUE); } private final static long serialVersionUID = -1; @Override protected void performAction() { closeForm(); } } protected void closeForm() { FormDirector.getInstance().closeForm(this); } public class CancelAction extends DefaultCancelAction { public final static String COMMAND_VALUE = "cancel"; public CancelAction() { putValue(COMMAND_KEY, COMMAND_VALUE); } private final static long serialVersionUID = -1; @Override protected void performAction() { if (JOptionPane.showConfirmDialog(BasicEntityForm.this, "Вся несохраненная информация будет потеряна. Закрыть без сохранения?", "Подтверждение закрытия", JOptionPane.YES_NO_CANCEL_OPTION) == JOptionPane.YES_OPTION) { closeForm(); } } } public class SaveAction extends DefaultSaveAction{ public final static String COMMAND_VALUE="save"; public SaveAction() { putValue(COMMAND_KEY, co); } private final static long serialVersionUID = -1; @Override protected void performAction() { saveEntity(); } } protected void saveEntity() { throw new UnsupportedOperationException("Not supported yet."); } protected Action createCreateAction() { return new DataSaveAction(new DefaultCreateAction() { private final static long serialVersionUID = -1; @Override protected void performAction() { createEntity(); } }); } protected void createEntity() { throw new UnsupportedOperationException("Not supported yet."); } @Override protected void registerButtonsActions() { super.registerButtonsActions(); for (Action action : createViewModeActions()) { addButtonAction(StandartEntityFormModes.View.class, action); } for (Action action : createEditModeActions()) { addButtonAction(StandartEntityFormModes.Edit.class, action); } for (Action action : createCreateModeActions()) { addButtonAction(StandartEntityFormModes.Create.class, action); } for (Action action : createCreateCopyModeActions()) { addButtonAction(StandartEntityFormModes.CreateCopy.class, action); } } protected Action[] createViewModeActions() { return new Action[]{createCloseAction(), createHelpAction()}; } protected Action[] createCreateModeActions() { return new Action[]{createCreateAction(), createCancelAction(), createHelpAction() }; } protected Action[] createCreateCopyModeActions() { return new Action[]{createCreateAction(), createCancelAction(), createHelpAction() }; } protected Action[] createEditModeActions() { return new Action[]{createSaveAction(), createCancelAction(), createHelpAction() }; } private class DataSaveAction extends ActionDecorator { public DataSaveAction(Action decoratedAction) { super(decoratedAction); } @Override public void actionPerformed(ActionEvent e) { BasicEntityForm.this.commitComponents(); VisualComponent invalidComponent = BasicEntityForm.this.getInvalidComponent(); if (invalidComponent == null) { super.actionPerformed(e); } else { JOptionPane.showMessageDialog(BasicEntityForm.this, "Введенная информация некорректна:\n " + invalidComponent.getLabelText() + ": " + invalidComponent.getValidationResultModel(). getResult().getMessagesText(), "Ошибка", JOptionPane.ERROR_MESSAGE); } } } } ----- Classpath: --------------------------------------------- bootPath: ClassPath[Entry[jar:file:/C:/Soft/java/jdk6u4/jre/lib/resources.jar!/], Entry[jar:file:/C:/Soft/java/jdk6u4/jre/lib/rt.jar!/], Entry[jar:file:/C:/Soft/java/jdk6u4/jre/lib/sunrsasign.jar!/], Entry[jar:file:/C:/Soft/java/jdk6u4/jre/lib/jsse.jar!/], Entry[jar:file:/C:/Soft/java/jdk6u4/jre/lib/jce.jar!/], Entry[jar:file:/C:/Soft/java/jdk6u4/jre/lib/charsets.jar!/], Entry[file:/C:/Soft/java/jdk6u4/jre/classes/], Entry[jar:file:/C:/Soft/java/jdk6u4/jre/lib/ext/dnsns.jar!/], Entry[jar:file:/C:/Soft/java/jdk6u4/jre/lib/ext/localedata.jar!/], Entry[jar:file:/C:/Soft/java/jdk6u4/jre/lib/ext/sunjce_provider.jar!/], Entry[jar:file:/C:/Soft/java/jdk6u4/jre/lib/ext/sunmscapi.jar!/], Entry[jar:file:/C:/Soft/java/jdk6u4/jre/lib/ext/sunpkcs11.jar!/]] classPath: ClassPath[Entry[jar:file:/Y:/FDT/FDT_Common/dist/FDT_Common.jar!/], Entry[jar:file:/Y:/FDT/FDT_Common/dist/lib/commons-beanutils.jar!/], Entry[jar:file:/Y:/FDT/FDT_Common/dist/lib/commons-betwixt.jar!/], Entry[jar:file:/Y:/FDT/FDT_Common/dist/lib/commons-cli.jar!/], Entry[jar:file:/Y:/FDT/FDT_Common/dist/lib/commons-collections.jar!/], Entry[jar:file:/Y:/FDT/FDT_Common/dist/lib/commons-configuration.jar!/], Entry[jar:file:/Y:/FDT/FDT_Common/dist/lib/commons-digester.jar!/], Entry[jar:file:/Y:/FDT/FDT_Common/dist/lib/commons-lang.jar!/], Entry[jar:file:/Y:/FDT/FDT_Common/dist/lib/commons-logging.jar!/], Entry[jar:file:/Y:/FDT/FDT_Client/lib/JCalendar/jcalendar.jar!/], Entry[jar:file:/Y:/FDT/FDT_Client/lib/JGoodiesValidation/validation.jar!/], Entry[jar:file:/Y:/FDT/FDT_Client/lib/SwingX/build_and_run/MultipleGradientPaint.jar!/], Entry[jar:file:/Y:/FDT/FDT_Client/lib/SwingX/build_and_run/swing-worker.jar!/]] sourcePath: ClassPath[Entry[file:/Y:/FDT/FDT_Client/src/], Entry[file:/Y:/FDT/FDT_Client/src_libs/SwingX/java/], Entry[file:/Y:/FDT/FDT_Client/src_libs/SwingX/beaninfo/], Entry[file:/Y:/FDT/FDT_Client/build/generated/wsclient/], Entry[file:/Y:/FDT/FDT_Client/build/generated/wsimport/client/]] ----- Original exception --------------------------------------------- java.lang.AssertionError at com.sun.tools.javac.comp.Attr.visitNewClass(Attr.java:1552) at com.sun.tools.javac.tree.JCTree$JCNewClass.accept(JCTree.java:1351) at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:386) at com.sun.tools.javac.comp.Attr.attribArgs(Attr.java:447) at com.sun.tools.javac.comp.Attr.visitNewClass(Attr.java:1445) at com.sun.tools.javac.tree.JCTree$JCNewClass.accept(JCTree.java:1351) at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:386) at com.sun.tools.javac.comp.Attr.attribExpr(Attr.java:403) at com.sun.tools.javac.comp.Attr.visitReturn(Attr.java:1183) at com.sun.tools.javac.tree.JCTree$JCReturn.accept(JCTree.java:1220) at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:386) at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:423) at com.sun.tools.javac.comp.Attr.attribStats(Attr.java:439) at com.sun.tools.javac.comp.Attr.visitBlock(Attr.java:780) at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:770) at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:386) at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:423) at com.sun.tools.javac.comp.Attr.visitMethodDef(Attr.java:698) at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:658) at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:386) at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:423) at com.sun.tools.javac.comp.Attr.attribClassBody(Attr.java:2772) at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:2698) at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:2632) at com.sun.tools.javac.main.JavaCompiler.attribute(JavaCompiler.java:1061) at com.sun.tools.javac.main.JavaCompiler.attribute(JavaCompiler.java:1037) at com.sun.tools.javac.api.JavacTaskImpl.analyze(JavacTaskImpl.java:437) at com.sun.tools.javac.api.JavacTaskImpl.analyze(JavacTaskImpl.java:417) at org.netbeans.api.java.source.JavaSource.moveToPhase(JavaSource.java:1283) at org.netbeans.api.java.source.CompilationInfoImpl.toPhase(CompilationInfoImpl.java:280) at org.netbeans.api.java.source.CompilationController.toPhase(CompilationController.java:81) at org.netbeans.modules.editor.java.JavaCompletionProvider$JavaCompletionQuery.resolveDocumentation(JavaCompletionProvider.java:506) at org.netbeans.modules.editor.java.JavaCompletionProvider$JavaCompletionQuery.run(JavaCompletionProvider.java:363) at org.netbeans.modules.editor.java.JavaCompletionProvider$JavaCompletionQuery.run(JavaCompletionProvider.java:123) at org.netbeans.api.java.source.JavaSource.runUserActionTask(JavaSource.java:660) at org.netbeans.api.java.source.JavaSource.runWhenScanFinished(JavaSource.java:792) at org.netbeans.modules.editor.java.JavaCompletionProvider$JavaCompletionQuery.query(JavaCompletionProvider.java:267) at org.netbeans.spi.editor.completion.support.AsyncCompletionTask.run(AsyncCompletionTask.java:218) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:561) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:986)