All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sourceforge.squirrel_sql.client.session.EntryPanelManager Maven / Gradle / Ivy

package net.sourceforge.squirrel_sql.client.session;

import net.sourceforge.squirrel_sql.client.gui.session.ToolsPopupAccessor;
import net.sourceforge.squirrel_sql.client.session.mainpanel.UndoHandlerImpl;
import net.sourceforge.squirrel_sql.client.session.parser.IParserEventsProcessorFactory;

import javax.swing.*;
import java.util.HashMap;

public class EntryPanelManager
{
   private ISession _session;
   private ISQLEntryPanel _entry;
   private JComponent _component;

   public EntryPanelManager(ISession session)
   {
      _session = session;
   }

   public void init(ISyntaxHighlightTokenMatcherFactory syntaxHighlightTokenMatcherFactory, ToolsPopupAccessor tpa)
   {
      HashMap props = new HashMap();
      props.put(IParserEventsProcessorFactory.class.getName(), null);

      if(null != syntaxHighlightTokenMatcherFactory)
      {
         props.put(ISyntaxHighlightTokenMatcherFactory.class.getName(), syntaxHighlightTokenMatcherFactory);
      }

      if(null != tpa)
      {
         props.put(ToolsPopupAccessor.class.getName(), tpa);
      }


      _entry = _session.getApplication().getSQLEntryPanelFactory().createSQLEntryPanel(_session, props);


      _component = _entry.getTextComponent();
      if (false == _entry.getDoesTextComponentHaveScroller())
      {
         _component = new JScrollPane(_entry.getTextComponent());
         _component.setBorder(BorderFactory.createEmptyBorder());
      }

      new UndoHandlerImpl(_session.getApplication(), _entry);
   }

   public JComponent getComponent()
   {
      checkInit();
      return _component;
   }

   private void checkInit()
   {
      if(null == _component)
      {
         throw new IllegalStateException("Call init() before using this object");
      }
   }

   public ISQLEntryPanel getEntryPanel()
   {
      checkInit();
      return _entry;
   }

   public void requestFocus()
   {
      checkInit();
      _entry.requestFocus();
   }

   protected ISession getSession()
   {
      return _session;
   }


}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy