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

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

package net.sourceforge.squirrel_sql.client.session;

import javax.swing.text.JTextComponent;

public class SQLEntryPanelUtil
{
   public static int[] getWordBoundsAtCursor(JTextComponent textComponent, boolean qualified)
   {
      String text = textComponent.getText();
      int caretPos = textComponent.getCaretPosition();

      int[] beginAndEndPos = new int[2];

      int lastIndexOfText = Math.max(0,text.length()-1);
      beginAndEndPos[0] = Math.min(caretPos, lastIndexOfText); // The Math.min is for the Caret at the end of the text
      while(0 < beginAndEndPos[0])
      {
         if(isParseStop(text.charAt(beginAndEndPos[0] - 1), false == qualified))
         {
            break;
         }
         --beginAndEndPos[0];
      }

      beginAndEndPos[1] = caretPos;
      while(beginAndEndPos[1] < text.length() && false == isParseStop(text.charAt(beginAndEndPos[1]), true))
      {
         ++beginAndEndPos[1];
      }
      return beginAndEndPos;
   }

   static boolean isParseStop(char c, boolean treatDotAsStop)
   {
      return
         '(' == c ||
         ')' == c ||
         ',' == c ||
         ';' == c ||
         '\'' == c ||
         Character.isWhitespace(c) ||
         (treatDotAsStop && '.' == c);
   }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy