@Override public boolean validateMenuItem(final NSMenuItem item) { final List<Path> selected = this.getSelected(); if(selected.isEmpty()) { return false; } final Selector action = item.action(); if(action.equals(this.getDefaultAction())) { return StringUtils.isNotBlank(item.representedObject()); } return true; }
/** * Send message with selector to receiver, passing args, expecting returnType. * * Note that you are responsible for memory management if returnType is ID. */ @SuppressWarnings("unchecked") public static <T> T send(ID receiver, Selector selector, Class<T> returnType, Object... args) { if (logging.isTraceEnabled()) logging.trace("sending ({}) {}.{}({})", new Object[] {returnType.getSimpleName(), receiver, selector.getName(), new VarArgsUnpacker(args)}); return (T) messageSendLibrary.syntheticSendMessage(returnType, receiver, selector, args); }
public static Selector selector(String selectorName) { Selector cached = selectorCache.get(selectorName); if (cached != null) return cached; Selector result = foundationLibrary.sel_registerName(selectorName).initName(selectorName); selectorCache.put(selectorName, result); return result; }
@Override public boolean validateMenuItem(final NSMenuItem item) { final Selector action = item.action(); if(action.equals(Foundation.selector("updateMenuClicked:"))) { if(updater.hasUpdatePrivileges()) { return !updater.isUpdateInProgress(); } return false; } return true; } }
private boolean shouldRetainFor(FromNativeContext context) { // Generally we should default to retaining, as by default NSObjects that // are returned from methods are owned by the current autorelease pool and // unless we retain will be dealloc'ed when is is drained. if (context == null || !(context instanceof FunctionResultContext)) return true; // The exception is if this conversion is for an object that we own, because // the selector name matches those FunctionResultContext resultContext = (FunctionResultContext) context; Object[] arguments = resultContext.getArguments(); if (arguments.length < 2) return true; if (!(arguments[1] instanceof Selector)) return true; boolean dontRetain = Foundation.selectorNameMeansWeOwnReturnedObject(((Selector) arguments[1]).getName()); return !dontRetain; // OK Smartarse, you express it better. } }
@Override public boolean validate(final Selector action) { if(action.equals(Foundation.selector("paste:"))) { return !PathPasteboardFactory.allPasteboards().isEmpty(); if(action.equals(stop.action())) { return this.validate(new InnerTransferValidator() { @Override if(action.equals(reload.action())) { return this.validate(new InnerTransferValidator() { @Override if(action.equals(remove.action())) { return this.validate(new InnerTransferValidator() { @Override if(action.equals(resume.action())) { return this.validate(new InnerTransferValidator() { @Override if(action.equals(open.action()) || action.equals(trash.action())) { return this.validate(new InnerTransferValidator() { @Override if(action.equals(reveal.action())) { return this.validate(new InnerTransferValidator() { @Override if(action.equals(cleanup.action())) {
/** * @param item Menu item * @return True if enabled */ @Override public boolean validateMenuItem(final NSMenuItem item) { final Selector action = item.action(); if(action.equals(Foundation.selector("paste:"))) { final List<PathPasteboard> pasteboards = PathPasteboardFactory.allPasteboards(); if(pasteboards.size() == 1) { for(PathPasteboard pasteboard : pasteboards) { if(pasteboard.size() == 1) { item.setTitle(MessageFormat.format(LocaleFactory.localizedString("Paste {0}"), pasteboard.get(0).getName())); } else { item.setTitle(MessageFormat.format(LocaleFactory.localizedString("Paste {0}"), MessageFormat.format(LocaleFactory.localizedString("{0} Files"), String.valueOf(pasteboard.size())) + ")")); } } } else { item.setTitle(LocaleFactory.localizedString("Paste")); } } return toolbarValidator.validate(action); }
public boolean validateMenuItem(final NSMenuItem item) { final Selector action = item.action(); if(action.equals(Foundation.selector("paste:"))) { final String title = "Paste {0}"; item.setTitle(MessageFormat.format(LocaleFactory.localizedString(title), StringUtils.EMPTY).trim()); else if(action.equals(Foundation.selector("cut:")) || action.equals(Foundation.selector("copy:"))) { String title = null; if(action.equals(Foundation.selector("cut:"))) { title = "Cut {0}"; else if(action.equals(Foundation.selector("copy:"))) { title = "Copy {0}"; else if(action.equals(Foundation.selector("showHiddenFilesClicked:"))) { item.setState(this.getFilter() instanceof NullFilter ? NSCell.NSOnState : NSCell.NSOffState); else if(action.equals(BrowserToolbarFactory.BrowserToolbarItem.encoding.action())) { if(this.isMounted()) { item.setState(pool.getHost().getEncoding().equalsIgnoreCase( else if(action.equals(Foundation.selector("browserSwitchMenuClicked:"))) { if(item.tag() == preferences.getInteger("browser.view")) { item.setState(NSCell.NSOnState); else if(action.equals(Foundation.selector("archiveMenuClicked:"))) { final Archive archive = Archive.forName(item.representedObject()); item.setTitle(archive.getTitle(this.getSelectedPaths()));
if(action.equals(Foundation.selector("cut:"))) { return this.isBrowser() && controller.isMounted() && controller.getSelectionCount() > 0; else if(action.equals(Foundation.selector("copy:"))) { return this.isBrowser() && controller.isMounted() && controller.getSelectionCount() > 0; else if(action.equals(Foundation.selector("paste:"))) { if(this.isBrowser() && controller.isMounted()) { if(controller.getPasteboard().isEmpty()) { else if(action.equals(encoding.action())) { return this.isBrowser(); else if(action.equals(Foundation.selector("connectBookmarkButtonClicked:"))) { if(this.isBookmarks()) { return controller.getBookmarkTable().numberOfSelectedRows().intValue() == 1; else if(action.equals(addbookmark.action())) { if(this.isBookmarks()) { return controller.getBookmarkModel().getSource().allowsAdd(); else if(action.equals(Foundation.selector("deleteBookmarkButtonClicked:"))) { if(this.isBookmarks()) { return controller.getBookmarkModel().getSource().allowsDelete() else if(action.equals(Foundation.selector("duplicateBookmarkButtonClicked:"))) { if(this.isBookmarks()) { return controller.getBookmarkModel().getSource().allowsEdit()