javauis/lcdui_akn/javalcdui/javasrc.nokialcdui/com/nokia/mid/ui/Clipboard.java
branchRCL_3
changeset 66 2455ef1f5bbc
child 83 26b2b12093af
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/lcdui_akn/javalcdui/javasrc.nokialcdui/com/nokia/mid/ui/Clipboard.java	Wed Sep 01 12:33:18 2010 +0100
@@ -0,0 +1,127 @@
+/*
+ * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:
+ *
+ */
+
+// PACKAGE
+package com.nokia.mid.ui;
+
+// EXTERNAL IMPORTS
+import com.nokia.mj.impl.rt.legacy.NativeError;
+import com.nokia.mj.impl.rt.legacy.ToolkitInvoker;
+
+/**
+ * Class to provide extra functionality that is related to text-editing
+ *
+ * @since 1.4
+ */
+public abstract class Clipboard
+{
+
+    // Private constructor.
+    private Clipboard()
+    {
+    }
+
+    /**
+     * Copies characters into the system clipboard.
+     * <P>
+     * If <code>text</code> parameter is <code>null</code> or empty string,
+     * it clears the system clipboard.
+     *
+     * @param text the text to be copied
+     */
+    public static void copyToClipboard(String text)
+    {
+        // Toolkit invoker is needed for accessing javax.microedition.lcdui
+        // package
+        ToolkitInvoker toolkitInvoker = ToolkitInvoker.getToolkitInvoker();
+
+        Object toolkit = toolkitInvoker.getToolkit();
+
+        synchronized (toolkit)
+        {
+            if ((text != null) && (text.length() == 0))
+            {
+                text = null;
+            }
+            NativeError.check(_copyToClipboard(
+                                  toolkitInvoker.toolkitGetHandle(toolkit), text));
+        }
+    }
+
+    /**
+     * Copies characters from the system clipboard.
+     * <P>
+     * Returns empty string when there is nothing in the system clipboard.
+     * <P>
+     * This method is not supported on S40 platform, returns <code>null</code>.
+     * <P>
+     * @return the content in clipboard
+     */
+    public static String copyFromClipboard()
+    {
+        String text = null;
+
+        int[] error = new int[1];
+        // Toolkit invoker is needed for accessing javax.microedition.lcdui
+        // package
+        ToolkitInvoker toolkitInvoker = ToolkitInvoker.getToolkitInvoker();
+
+        Object toolkit = toolkitInvoker.getToolkit();
+
+        synchronized (toolkit)
+        {
+            text = _copyFromClipboard(
+                       toolkitInvoker.toolkitGetHandle(toolkit),
+                       error);
+        }
+
+        NativeError.check(error[0]);
+        if (text == null)
+        {
+            text = "";
+        }
+        return text;
+    }
+
+    /*
+     * Stores the text into the clipboard.
+     *
+     * @param toolkitHandle A handle to the LCDUI toolkit.
+     *
+     * @param text A text to be copied into the system-clipboard.
+     *
+     * @return NativeError.KErrNone if the operation was successful. Otherwise,
+     * a system-wide error code is returned.
+     */
+    private static native int _copyToClipboard(int toolkit, String text);
+
+    /*
+     * Copies characters from the system-clipboard.
+     *
+     * @param toolkit A handle to the LCDUI toolkit.
+     *
+     * @param error On return contains the error code for the operation.
+     *
+     * @return The content of clipboard.
+     */
+    private static native String _copyFromClipboard(
+        int toolkit,
+        int[] error);
+
+}
+
+// END OF FILE
\ No newline at end of file