Щелкнуть правой кнопкой в GWT?

Используя споры ключевого слова со значениями по умолчанию (как предложено kquinn) хорошая идея, но потребует, чтобы Вы включали круглую скобку:

@redirect_output()
def foo():
    ...

, Если Вы хотели бы версию, которая работает без круглой скобки над декоратором, которого необходимо будет считать обоими сценариями в коде декоратора.

при использовании Python 3.0, Вы могли бы использовать ключевое слово только аргументы в пользу этого:

def redirect_output(fn=None,*,destination=None):
  destination = sys.stderr if destination is None else destination
  def wrapper(*args, **kwargs):
    ... # your code here
  if fn is None:
    def decorator(fn):
      return functools.update_wrapper(wrapper, fn)
    return decorator
  else:
    return functools.update_wrapper(wrapper, fn)

В Python 2.x это может быть эмулировано с приемами varargs:

def redirected_output(*fn,**options):
  destination = options.pop('destination', sys.stderr)
  if options:
    raise TypeError("unsupported keyword arguments: %s" % 
                    ",".join(options.keys()))
  def wrapper(*args, **kwargs):
    ... # your code here
  if fn:
    return functools.update_wrapper(wrapper, fn[0])
  else:
    def decorator(fn):
      return functools.update_wrapper(wrapper, fn)
    return decorator

Любая из этих версий позволила бы Вам писать код как это:

@redirected_output
def foo():
    ...

@redirected_output(destination="somewhere.log")
def bar():
    ...
8
задан ire_and_curses 17 September 2009 в 06:26
поделиться

2 ответа

It turns out you can do it by extending DeckPanel. Here's an excellent discussion, along with a nice demo that proves it works.

http://whatwouldnickdo.com/wordpress/370/gwt-right-click-context-menu/

4
ответ дан 5 December 2019 в 12:59
поделиться

Хотя есть способы сделать это, я считаю, что команда GWT дискутировала по этому поводу и решила, что включение правой кнопки мыши в веб-приложении - это плохо, и поэтому приняла осознанное решение не поддерживать его. . Аргумент заключался в том, что щелчок правой кнопкой мыши должен продолжать работать, как ожидалось (вызывать контекстное меню щелчка правой кнопкой мыши в главном браузере), и переопределение этого нарушало это ожидаемое поведение и было бы плохой практикой. Хотя у меня были случаи, когда контекстное меню правой кнопки мыши было бы полезным, в целом я склонен согласиться с решением команды GWT.

2
ответ дан 5 December 2019 в 12:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: