/* SelectionEvent.java
Purpose:
Description:
History:
Wed April 18 15:18:32 2007, Created by jumperchen
Copyright (C) 2007 Potix Corporation. All Rights Reserved.
{{IS_RIGHT
This program is distributed under LGPL Version 2.1 in the hope that
it will be useful, but WITHOUT ANY WARRANTY.
}}IS_RIGHT
*/
package org.zkoss.zk.ui.event;
import java.util.Map;
import org.zkoss.zk.au.AuRequest;
import org.zkoss.zk.au.AuRequests;
import org.zkoss.zk.ui.Component;
/**
* Represents an event cause by user's the active selection which is a
* highlighted block of text.
*
* @author jumperchen
*/
public class SelectionEvent extends Event {
private final int _start, _end;
private final String _txt;
/** Converts an AU request to a selection event.
* @since 5.0.0
*/
public static final SelectionEvent getSelectionEvent(AuRequest request) {
final Map<String, Object> data = request.getData();
return new SelectionEvent(request.getCommand(), request.getComponent(), AuRequests.getInt(data, "start", 0),
AuRequests.getInt(data, "end", 0), (String) data.get("selected"));
}
/**
* Constructs a selection event.
*/
public SelectionEvent(String name, Component target, int start, int end, String txt) {
super(name, target);
_start = start;
_end = end;
_txt = txt;
}
/**
* Returns the selected text's end position.
*
* @return the end position >= 0
*/
public int getEnd() {
return _end;
}
/**
* Returns the selected text's start position.
*
* @return the start position >= 0
*/
public int getStart() {
return _start;
}
/**
* Returns the selected text contained in this text. If the
* selection is null or the document empty, returns empty string.
*/
public String getSelectedText() {
return _txt;
}
}