GWT:TextField的拖放事件?(GWT: Drag&Drop Event for TextField?)
我想知道如何监听
TextField
的drop事件。 我需要拦截那些事件才能进行价值检查。我写了一个扩展的
TextBox
,它触发了TextChangeEvents
。 但是当我将文本放入文本字段时,我没有调用onBrowserEvent(Event event)
方法。任何提示?
public class ExtendedTextBox extends TextBox { /** * Creates an empty extended text box. */ public ExtendedTextBox() { super(); // Catch the browser events. sinkEvents(Event.ONKEYUP); sinkEvents(Event.ONPASTE); } @Override public void onBrowserEvent(Event event) { super.onBrowserEvent(event); System.out.println(event.getTypeInt()); switch (event.getTypeInt()) { case Event.ONKEYUP: case Event.ONPASTE: { // Fire the event after the text box shows the new data. Scheduler.get().scheduleDeferred(new ScheduledCommand() { @Override public void execute() { fireEvent(new TextChangeEvent(ExtendedTextBox.this.getText())); } }); break; } default: } } /** * Add a given {@link TextChangeEventHandler} to the widget. * * @param handler * the handler * @return {@link HandlerRegistration} used to remove the handler */ public HandlerRegistration addTextChangeEventHandler(TextChangeEventHandler handler) { return addHandler(handler, TextChangeEvent.TYPE); } }
I wonder how it is possible to listen for the drop event for a
TextField
. I need to intercept that events in order to do value checks.I wrote an extended
TextBox
, which firesTextChangeEvents
. But when i drop a text into the text field, I don't get a call for theonBrowserEvent(Event event)
method.Any hint?
public class ExtendedTextBox extends TextBox { /** * Creates an empty extended text box. */ public ExtendedTextBox() { super(); // Catch the browser events. sinkEvents(Event.ONKEYUP); sinkEvents(Event.ONPASTE); } @Override public void onBrowserEvent(Event event) { super.onBrowserEvent(event); System.out.println(event.getTypeInt()); switch (event.getTypeInt()) { case Event.ONKEYUP: case Event.ONPASTE: { // Fire the event after the text box shows the new data. Scheduler.get().scheduleDeferred(new ScheduledCommand() { @Override public void execute() { fireEvent(new TextChangeEvent(ExtendedTextBox.this.getText())); } }); break; } default: } } /** * Add a given {@link TextChangeEventHandler} to the widget. * * @param handler * the handler * @return {@link HandlerRegistration} used to remove the handler */ public HandlerRegistration addTextChangeEventHandler(TextChangeEventHandler handler) { return addHandler(handler, TextChangeEvent.TYPE); } }
原文:https://stackoverflow.com/questions/15553983
更新时间:2022-02-27 08:02
最满意答案
input <- data.frame(Market.Pair = c("US to/from CA", "HOU to/from DFW/DAL", "EWR/JFK to/from LAX/SFO", "US-NYC to/from FR-PAR", "US to EMEA/India")) sp <- strsplit(as.character(input$Market.Pair), '\\s+to(/from)?\\s+') f <- Vectorize(function(x) if (grepl('\\-', x)) 'City' else if (nchar(x) == 2) 'Country' else if (grepl('^[A-Z]+/[A-Z]+$|^[A-Z]+$', x)) 'Air' else 'Region') dd <- lapply(sp, function(x) { ## set up output matrix cn <- sort(levels(interaction(c('Air','City','Country','Region'), 1:2))) m <- matrix('', 1, length(cn), dimnames = list(NULL, cn)) ## use f above and add the suffix xx <- f(x) nn <- setNames(x, paste(xx, ave(xx, xx, FUN = seq_along), sep = '.')) ## match m[, names(nn)] <- nn m }) do.call('rbind.data.frame', dd) # Air.1 Air.2 City.1 City.2 Country.1 Country.2 Region.1 Region.2 # 1 US CA # 2 HOU DFW/DAL # 3 EWR/JFK LAX/SFO # 4 US-NYC FR-PAR # 5 US EMEA/India
input <- data.frame(Market.Pair = c("US to/from CA", "HOU to/from DFW/DAL", "EWR/JFK to/from LAX/SFO", "US-NYC to/from FR-PAR", "US to EMEA/India")) sp <- strsplit(as.character(input$Market.Pair), '\\s+to(/from)?\\s+') f <- Vectorize(function(x) if (grepl('\\-', x)) 'City' else if (nchar(x) == 2) 'Country' else if (grepl('^[A-Z]+/[A-Z]+$|^[A-Z]+$', x)) 'Air' else 'Region') dd <- lapply(sp, function(x) { ## set up output matrix cn <- sort(levels(interaction(c('Air','City','Country','Region'), 1:2))) m <- matrix('', 1, length(cn), dimnames = list(NULL, cn)) ## use f above and add the suffix xx <- f(x) nn <- setNames(x, paste(xx, ave(xx, xx, FUN = seq_along), sep = '.')) ## match m[, names(nn)] <- nn m }) do.call('rbind.data.frame', dd) # Air.1 Air.2 City.1 City.2 Country.1 Country.2 Region.1 Region.2 # 1 US CA # 2 HOU DFW/DAL # 3 EWR/JFK LAX/SFO # 4 US-NYC FR-PAR # 5 US EMEA/India
相关问答
更多-
而不是split操作使用这个正则表达式与2个捕获的组: (?
[\w\s]+:)\s*(? .+?)\s*(?=(?:[Aa]rtist|[Tt]itle|(?:[Ff]ramed )?[Dd]imensions):|$) RegEx演示 码: final String regex = "(? [\\w\\s]+:)\\s*(? .+?)\\s*(?=(?:[Aa]rtist|[Tt]itle|(?:[Ff]ramed )?[Dd]imensions):|$)"; ... -
如果NA可以用于空白值,那么我们可以执行以下操作。 假设您的数据被命名为df ,我们可以首先创建一个用于分割数据的值向量。 (x <- rep(1:ceiling(nrow(df) / 5), each = 5, length.out = nrow(df))) # [1] 1 1 1 1 1 2 2 2 现在我们可以拆分数据,循环结果列表以使每个元素长度为5,并强制数据帧。 列名在此处即时创建。 之后创建它们可能会更有效率。 as.data.frame(lapply(split(df$Name, past ...
-
正则表达式 - 在R中没有明确的分隔符将一列分成多列(regex — split one column into multiple columns with no explicit delimiters in R)[2023-08-02]
input <- data.frame(Market.Pair = c("US to/from CA", "HOU to/from DFW/DAL", "EWR/JFK to/from LAX/SFO", "US-NYC to/from FR-PAR", "US to EMEA/India")) sp <- strsplit(as.character(input$ ... -
splitstackshape包中的cSplit函数可以使问题更容易解决。 一种方法可以是: library(splitstackshape) # First use `gsub` to replace other delimiter and have only ',' delimiter. my_table$TYPE <- gsub("and|;",",",my_table$TYPE) Mod_df <- cSplit(my_table, "TYPE", sep = ",") Mod_df # ...
-
将由多个分隔符定义的字符串部分拆分为R中的多个变量(Split parts of string defined by multiple delimiters into multiple variables in R)[2023-10-16]
试试这个,来自`tidyr'包: library(tidyr) f %>% separate(filename, c('area', 'rec', 'site'), sep = '-') 您还可以分割多个差异分度,如下所示: f %>% separate(filename, c('area', 'rec', 'site', 'date', 'don_know_what_this_is', 'file_extension'), sep = '-|_|\\.') 然后使用dplyr的select函数只保留 ... -
你可以使用extract : df1 = df['Unique'].str.extract("(?P
.*?):(?P \d+)-(?P \d+)\((?P [-+])", expand=True) print (df1) ch start end strand 0 3 107912234 107912321 - 1 4 107913333 1079 ... -
借助拆分/解析功能 Declare @String varchar(max)='Foo bar baz hello world { foo: ''bar'', bar: ''foo'' } { foo: ''foo'', bar: ''bar'' }' Select ID=Row_Number() over (Order By (Select NULL)) ,Text = B.RetVal From (Select RetSeq,RetVal = IIF(CharIndex( ...
-
如果您拥有的数据不是这样的,请通过添加代码让每个人都知道,我们可以复制并粘贴到R中以重现您的数据(请参阅如何轻松地将此样本数据复制并粘贴到R?) 样本数据: location <- c( "6540 BENNINGTON AVE Kansas City, MO 64133 (39.005620414000475, -94.50998643299965)", "456 POOH LANE New York City, NY 10025 (40, -90)") location #[1] "6540 BEN ...
-
SPLIT函数仅接受常量字符串作为分隔符。 正则表达式分隔符没有隐藏语法。 您可以尝试的另一种方法是使用REGEXP_REPLACE将所有所需的分隔符替换为空格或任何单个分隔符,如下所示: SPLIT(REGEXP_REPLACE(message, ",|;|:|\\.|\\?|!|\t|\n", " "), " ") The SPLIT function only accepts constant strings as delimiters. There's no hidden syntax for r ...
-
仅供参考,vanilla String.Split()方法有一个重载,它接受一组字符串作为分隔符。 这是 MSDN网页的链接描述。 Just FYI, the vanilla String.Split() method has an overload which accepts an array of strings to use as delimiters. Here's a link to MSDN's page describing it.