Package org.apache.ojb.tools.mapping.reversedb2.gui

Source Code of org.apache.ojb.tools.mapping.reversedb2.gui.JIFrmOJBRepository

/* Copyright 2002-2005 The Apache Software Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package org.apache.ojb.tools.mapping.reversedb2.gui;
import org.apache.ojb.broker.metadata.DescriptorRepository;
import org.apache.ojb.tools.mapping.reversedb2.actions.ActionSaveAsOJBRepository;
import org.apache.ojb.tools.mapping.reversedb2.dnd2.DragHelper;
import org.apache.ojb.tools.mapping.reversedb2.dnd2.DropTargetHelper;
import org.apache.ojb.tools.mapping.reversedb2.ojbmetatreemodel.OjbMetaTreeNodesDragWorker;
import org.apache.ojb.tools.mapping.reversedb2.ojbmetatreemodel.ReverseDbNodesToOjbMetaDropWorker;
import org.apache.ojb.tools.mapping.reversedb2.propertyEditors.PropertyEditor;
import org.apache.ojb.tools.mapping.reversedb2.propertyEditors.PropertyEditorTarget;

/**
*
* @author  Administrator
*/
public class JIFrmOJBRepository extends javax.swing.JInternalFrame {
   
    private javax.swing.tree.DefaultMutableTreeNode rootNode =
        new javax.swing.tree.DefaultMutableTreeNode("Root");
   
    private java.util.HashMap hmCachedPopupMenus = new java.util.HashMap();
   
    private java.util.HashMap hmPropertyEditors = new java.util.HashMap();
   
    private DescriptorRepository aRepository;

    /** Creates new form JIFrmOJBRepository */
    public JIFrmOJBRepository(DescriptorRepository repository)
    {
        this.aRepository = repository;
        initComponents();
        jTree1.setModel(new org.apache.ojb.tools.mapping.reversedb2.ojbmetatreemodel.OjbMetaDataTreeModel(repository));
        DropTargetHelper helper = new DropTargetHelper();
        helper.registerDropPasteWorker (new ReverseDbNodesToOjbMetaDropWorker());
        jTree1.setDropTarget(helper.getDropTarget ());
/*        getGlassPane().setDropTarget(helper.getDropTarget());
        this.setDropTarget(helper.getDropTarget());
*/
        // this.jScrollPane1.setDropTarget(helper.getDropTarget());
//        this.jSplitPane1.setDropTarget(helper.getDropTarget());
       
        new DragHelper(new OjbMetaTreeNodesDragWorker()).registerComponent(jTree1);
       
        setJMenuBar(this.jMenuBar1);
        pack();
    }
   
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    private void initComponents()//GEN-BEGIN:initComponents
    {
        jMenuBar1 = new javax.swing.JMenuBar();
        mnuFile = new javax.swing.JMenu();
        mnuFileSave = new javax.swing.JMenuItem();
        jSplitPane1 = new javax.swing.JSplitPane();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTree1 = new javax.swing.JTree();
        jScrlProperty = new javax.swing.JScrollPane();

        mnuFile.setMnemonic('F');
        mnuFile.setText("File");
        mnuFileSave.setAction(new ActionSaveAsOJBRepository(aRepository));
        mnuFile.add(mnuFileSave);

        jMenuBar1.add(mnuFile);

        setClosable(true);
        setIconifiable(true);
        setMaximizable(true);
        setResizable(true);
        jTree1.addMouseListener(new java.awt.event.MouseAdapter()
        {
            public void mousePressed(java.awt.event.MouseEvent evt)
            {
                jTree1MousePressed(evt);
            }
            public void mouseReleased(java.awt.event.MouseEvent evt)
            {
                jTree1MousePressed(evt);
            }
        });

        jTree1.addTreeSelectionListener(new javax.swing.event.TreeSelectionListener()
        {
            public void valueChanged(javax.swing.event.TreeSelectionEvent evt)
            {
                jTree1ValueChanged(evt);
            }
        });

        jScrollPane1.setViewportView(jTree1);

        jSplitPane1.setLeftComponent(jScrollPane1);

        jSplitPane1.setRightComponent(jScrlProperty);

        getContentPane().add(jSplitPane1, java.awt.BorderLayout.CENTER);

        pack();
    }//GEN-END:initComponents

    private void jTree1ValueChanged(javax.swing.event.TreeSelectionEvent evt)//GEN-FIRST:event_jTree1ValueChanged
    {//GEN-HEADEREND:event_jTree1ValueChanged
        // Add your handling code here:
        Object selectedObject = evt.getPath().getLastPathComponent();
        if (selectedObject instanceof PropertyEditorTarget)
        {
            PropertyEditorTarget p = (PropertyEditorTarget)selectedObject;
            if (p.getPropertyEditorClass() != null)
            {
                try
                {
                    if(!this.hmPropertyEditors.containsKey(p.getPropertyEditorClass()))
                    {
                        this.hmPropertyEditors.put(p.getPropertyEditorClass(), p.getPropertyEditorClass().newInstance());
                    }
                    PropertyEditor propertyEditor = (PropertyEditor)hmPropertyEditors.get(p.getPropertyEditorClass());
                    this.jScrlProperty.setViewportView(propertyEditor);
                    propertyEditor.setEditorTarget(p);
                }
                catch (Throwable t)
                {
                    t.printStackTrace();
                    this.jScrlProperty.setViewportView(null);
                }
            }
            else
            {
                this.jScrlProperty.setViewportView(null);
            }
        }
        else
        {
            this.jScrlProperty.setViewportView(null);
        }       
    }//GEN-LAST:event_jTree1ValueChanged

    private javax.swing.JPopupMenu createPopupMenuForActionTarget(org.apache.ojb.tools.mapping.reversedb2.ActionTarget at)
    {
        javax.swing.JPopupMenu createdMenu = new javax.swing.JPopupMenu();
        java.util.Iterator it = at.getActions();
        while (it.hasNext())
        {
            createdMenu.add((javax.swing.Action)it.next());
        }
        return createdMenu;
    }
   
    private void jTree1MousePressed(java.awt.event.MouseEvent evt)//GEN-FIRST:event_jTree1MousePressed
    {//GEN-HEADEREND:event_jTree1MousePressed
        // Add your handling code here:
        if (evt.isPopupTrigger())
        {
            javax.swing.tree.TreePath selPath = jTree1.getPathForLocation(evt.getX(), evt.getY());
            if (selPath != null)
            {
                if (selPath.getLastPathComponent() instanceof org.apache.ojb.tools.mapping.reversedb2.ActionTarget)
                {
                    org.apache.ojb.tools.mapping.reversedb2.ActionTarget at =
                        (org.apache.ojb.tools.mapping.reversedb2.ActionTarget)selPath.getLastPathComponent();
                    javax.swing.JPopupMenu popupMenu = null;
                    if (at.actionListStatic())
                    {
                        popupMenu = (javax.swing.JPopupMenu) this.hmCachedPopupMenus.get(at.getClass());
                        if (popupMenu == null)
                        {
                            popupMenu = createPopupMenuForActionTarget(at);
                            this.hmCachedPopupMenus.put(at.getClass(), popupMenu);
                        }
                    }
                    else if (at.actionListCachable())
                    {
                        popupMenu = (javax.swing.JPopupMenu) this.hmCachedPopupMenus.get(at);
                        if (popupMenu == null)
                        {
                            popupMenu = createPopupMenuForActionTarget(at);
                            this.hmCachedPopupMenus.put(at, popupMenu);
                        }
                    }
                    else
                    {
                        popupMenu = createPopupMenuForActionTarget(at);
                    }
                    jTree1.setSelectionPath(selPath);
                    popupMenu.show(jTree1, evt.getX(), evt.getY());
                    int posY = evt.getY();
                    while ((popupMenu.getLocationOnScreen().y +
                        popupMenu.getSize().height) >
                        getToolkit().getScreenSize().height)
                    {
                        posY--;
                        //                        popupMenu.hide();
                        popupMenu.show(jTree1, evt.getX(), posY);
                    }                   
                }
            }
        }
       
    }//GEN-LAST:event_jTree1MousePressed

   
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JMenuItem mnuFileSave;
    private javax.swing.JSplitPane jSplitPane1;
    private javax.swing.JScrollPane jScrlProperty;
    private javax.swing.JTree jTree1;
    private javax.swing.JMenu mnuFile;
    private javax.swing.JMenuBar jMenuBar1;
    // End of variables declaration//GEN-END:variables
   
}
TOP

Related Classes of org.apache.ojb.tools.mapping.reversedb2.gui.JIFrmOJBRepository

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.