summaryrefslogtreecommitdiffstats
path: root/awt/java/awt/event/InputMethodEvent.java
diff options
context:
space:
mode:
Diffstat (limited to 'awt/java/awt/event/InputMethodEvent.java')
-rw-r--r--awt/java/awt/event/InputMethodEvent.java156
1 files changed, 156 insertions, 0 deletions
diff --git a/awt/java/awt/event/InputMethodEvent.java b/awt/java/awt/event/InputMethodEvent.java
new file mode 100644
index 0000000..be001a5
--- /dev/null
+++ b/awt/java/awt/event/InputMethodEvent.java
@@ -0,0 +1,156 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
+/**
+ * @author Michael Danilov
+ * @version $Revision$
+ */
+package java.awt.event;
+
+import java.awt.AWTEvent;
+import java.awt.Component;
+import java.awt.font.TextHitInfo;
+import java.text.AttributedCharacterIterator;
+
+import org.apache.harmony.awt.internal.nls.Messages;
+
+/**
+ * This class is not supported in Android 1.0. It is merely provided to maintain
+ * interface compatibility with desktop Java implementations.
+ *
+ * @since Android 1.0
+ */
+public class InputMethodEvent extends AWTEvent {
+
+ private static final long serialVersionUID = 4727190874778922661L;
+
+ public static final int INPUT_METHOD_FIRST = 1100;
+
+ public static final int INPUT_METHOD_TEXT_CHANGED = 1100;
+
+ public static final int CARET_POSITION_CHANGED = 1101;
+
+ public static final int INPUT_METHOD_LAST = 1101;
+
+ private AttributedCharacterIterator text;
+ private TextHitInfo visiblePosition;
+ private TextHitInfo caret;
+ private int committedCharacterCount;
+ private long when;
+
+ public InputMethodEvent(Component src, int id,
+ TextHitInfo caret,
+ TextHitInfo visiblePos) {
+ this(src, id, null, 0, caret, visiblePos);
+ }
+
+ public InputMethodEvent(Component src, int id,
+ AttributedCharacterIterator text,
+ int commitedCharCount,
+ TextHitInfo caret,
+ TextHitInfo visiblePos) {
+ this(src, id, 0l, text, commitedCharCount, caret, visiblePos);
+ }
+
+ public InputMethodEvent(Component src, int id, long when,
+ AttributedCharacterIterator text,
+ int committedCharacterCount,
+ TextHitInfo caret,
+ TextHitInfo visiblePos) {
+ super(src, id);
+
+ if ((id < INPUT_METHOD_FIRST) || (id > INPUT_METHOD_LAST)) {
+ // awt.18E=Wrong event id
+ throw new IllegalArgumentException(Messages.getString("awt.18E")); //$NON-NLS-1$
+ }
+ if ((id == CARET_POSITION_CHANGED) && (text != null)) {
+ // awt.18F=Text must be null for CARET_POSITION_CHANGED
+ throw new IllegalArgumentException(Messages.getString("awt.18F")); //$NON-NLS-1$
+ }
+ if ((text != null) &&
+ ((committedCharacterCount < 0) ||
+ (committedCharacterCount >
+ (text.getEndIndex() - text.getBeginIndex())))) {
+ // awt.190=Wrong committedCharacterCount
+ throw new IllegalArgumentException(Messages.getString("awt.190")); //$NON-NLS-1$
+ }
+
+ this.when = when;
+ this.text = text;
+ this.caret = caret;
+ this.visiblePosition = visiblePos;
+ this.committedCharacterCount = committedCharacterCount;
+ }
+
+ public TextHitInfo getCaret() {
+ return caret;
+ }
+
+ public int getCommittedCharacterCount() {
+ return committedCharacterCount;
+ }
+
+ public AttributedCharacterIterator getText() {
+ return text;
+ }
+
+ public TextHitInfo getVisiblePosition() {
+ return visiblePosition;
+ }
+
+ public long getWhen() {
+ return when;
+ }
+
+ @Override
+ public void consume() {
+ super.consume();
+ }
+
+ @Override
+ public boolean isConsumed() {
+ return super.isConsumed();
+ }
+
+ @Override
+ public String paramString() {
+ /* The format is based on 1.5 release behavior
+ * which can be revealed by the following code:
+ *
+ * InputMethodEvent e = new InputMethodEvent(new Component(){},
+ * InputMethodEvent.INPUT_METHOD_TEXT_CHANGED,
+ * TextHitInfo.leading(1), TextHitInfo.trailing(2));
+ * System.out.println(e);
+ */
+ String typeString = null;
+
+ switch (id) {
+ case INPUT_METHOD_TEXT_CHANGED:
+ typeString = "INPUT_METHOD_TEXT_CHANGED"; //$NON-NLS-1$
+ break;
+ case CARET_POSITION_CHANGED:
+ typeString = "CARET_POSITION_CHANGED"; //$NON-NLS-1$
+ break;
+ default:
+ typeString = "unknown type"; //$NON-NLS-1$
+ }
+
+ return typeString + ",text=" + text + //$NON-NLS-1$
+ ",commitedCharCount=" + committedCharacterCount + //$NON-NLS-1$
+ ",caret=" + caret + ",visiblePosition=" + visiblePosition; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+}