Simple ClipBoard : TextBox TextField « J2ME « Java






Simple ClipBoard

Simple ClipBoard

/*--------------------------------------------------
* SimpleClipBoard.java
*
* Example from the book:     Core J2ME Technology
* Copyright John W. Muchow   http://www.CoreJ2ME.com
* You may use/modify for any non-commercial purpose
*-------------------------------------------------*/
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class SimpleClipBoard extends MIDlet implements CommandListener
{
  private Display display;      // Reference to Display object
  private TextBox tbClip;      // Main textbox
  private Command cmExit;      // Command to exit
  private Command cmStartMark; // Command to start marking a block
  private Command cmCopy;      // Command to copy to clipboard 
  private Command cmPaste;     // Command to paste into textbox
  private int beginOffset = 0;  // The start index of copy
  private char[] clipBoard = null; // The clipboard
  private int clipBoardChars = 0;  // Number of chars in clipboard
  
  public SimpleClipBoard()
  {
    display = Display.getDisplay(this);

    // Create the Commands. Notice the priorities assigned
    cmExit = new Command("Exit", Command.EXIT, 1);
    cmStartMark = new Command("Mark", Command.SCREEN, 2);
    cmCopy = new Command("Copy", Command.SCREEN, 3);
    cmPaste = new Command("Paste", Command.SCREEN, 4);

    tbClip = new TextBox("Clip Board", "Tee to grn", 15, TextField.ANY);
    tbClip.addCommand(cmExit);
    tbClip.addCommand(cmStartMark);
    tbClip.addCommand(cmCopy);
    tbClip.addCommand(cmPaste);    
    tbClip.setCommandListener(this);
    
    // Allocate a clipboard big enough to hold the entire textbox
    clipBoard = new char[tbClip.getMaxSize()];
  }
      
  public void startApp() 
  {
    display.setCurrent(tbClip);
  }
  
  public void pauseApp()
  {
  }
     
  public void destroyApp(boolean unconditional)
  {
  }

  public void commandAction(Command c, Displayable s)
  {
    if (c == cmStartMark)
    {
      beginOffset = tbClip.getCaretPosition();
    }
    else if (c == cmCopy && (tbClip.getCaretPosition() > beginOffset))
    {
      // Allocate an array to hold the current textbox contents
      char[] chr = new char[tbClip.size()];
      
      // Get the current textbox contents
      tbClip.getChars(chr);

      // The count of characters in the clipboard      
      clipBoardChars = tbClip.getCaretPosition() - beginOffset;
      
      // Copy the text into the clipboard
      // arraycopy(source, sourceindex, dest, destindex, count)      
      System.arraycopy(chr, beginOffset, clipBoard, 0, clipBoardChars);
    }
    else if (c == cmPaste)
    {
      // Make sure the paste will not overrun the textbox length.
      if ((tbClip.size() + clipBoardChars) <= tbClip.getMaxSize())
        tbClip.insert(clipBoard, 0, clipBoardChars, tbClip.getCaretPosition());
    }
    else if (c == cmExit)
    {
      destroyApp(false);
      notifyDestroyed();
    } 
  }
}

           
       








Related examples in the same category

1.TextField CaptureTextField Capture
2.Phone BookPhone Book
3.Hello TextBox MIDletHello TextBox MIDlet
4.Hide TextHide Text
5.TextBox CaptureTextBox Capture
6.GUI Test in MIDletGUI Test in MIDlet
7.TextBox Shared ClipBoardTextBox Shared ClipBoard
8.Login MidletLogin Midlet
9.TextBox MIDlet
10.TextBox MIDlet 2