@Override protected void focus(final NSAlert alert) { super.focus(alert); alert.window().makeFirstResponder(inputField); inputField.selectText(null); }
@Override public void loadBundle(final NSAlert alert) { this.inputField = NSTextField.textfieldWithFrame(new NSRect(alert.window().frame().size.width.doubleValue(), 22)); this.inputField.cell().setPlaceholderString(alert.informativeText()); super.loadBundle(alert); }
protected void focus(final NSAlert alert) { NSEnumerator buttons = alert.buttons().objectEnumerator(); NSObject button; while(((button = buttons.nextObject()) != null)) { final NSButton b = Rococoa.cast(button, NSButton.class); b.setTarget(this.id()); b.setAction(Foundation.selector("closeSheet:")); } final NSView accessory = this.getAccessoryView(alert); if(accessory != null) { final NSRect frame = this.getFrame(alert, accessory); accessory.setFrameSize(frame.size); alert.setAccessoryView(accessory); alert.window().makeFirstResponder(accessory); } // First call layout and then do any special positioning and sizing of the accessory view prior to running the alert alert.layout(); alert.window().recalculateKeyViewLoop(); }
public NSView getAccessoryView(final NSAlert alert) { if(this.hasLocation()) { view = NSView.create(new NSRect(alert.window().frame().size.width.doubleValue(), 0)); regionPopup = NSPopUpButton.buttonWithFrame(new NSRect(alert.window().frame().size.width.doubleValue(), 26)); regions.stream().sorted(Comparator.comparing(Location.Name::toString)).forEach(region -> { regionPopup.addItemWithTitle(region.toString()); regionPopup.itemWithTitle(region.toString()).setRepresentedObject(region.getIdentifier()); if(region.getIdentifier().equals(PreferencesFactory.get().getProperty("s3.location"))) { regionPopup.selectItem(regionPopup.lastItem()); } }); // Override accessory view with location menu added regionPopup.setFrameOrigin(new NSPoint(0, 0)); view.addSubview(regionPopup); inputField.setFrameOrigin(new NSPoint(0, this.getFrame(alert, view).size.height.doubleValue() + view.subviews().count().doubleValue() * SUBVIEWS_VERTICAL_SPACE)); view.addSubview(inputField); return view; } return super.getAccessoryView(alert); }
public NSView getAccessoryView(final NSAlert alert) { view = NSView.create(new NSRect(alert.window().frame().size.width.doubleValue(), 0)); regionPopup = NSPopUpButton.buttonWithFrame(new NSRect(alert.window().frame().size.width.doubleValue(), 26)); regionPopup.setFrameOrigin(new NSPoint(0, 0)); for(Location.Name region : regions) { regionPopup.addItemWithTitle(region.toString()); regionPopup.itemWithTitle(region.toString()).setRepresentedObject(region.getIdentifier()); if(region.getIdentifier().equals(PreferencesFactory.get().getProperty("s3.location"))) { regionPopup.selectItem(regionPopup.lastItem()); } } // Override accessory view with location menu added view.addSubview(regionPopup); return view; }
protected void loadBundle(final NSAlert alert) { this.alert = alert; alert.setShowsHelp(true); alert.setDelegate(this.id()); if(alert.showsSuppressionButton()) { alert.suppressionButton().setTarget(this.id()); alert.suppressionButton().setAction(Foundation.selector("suppressionButtonClicked:")); } // Layout alert view on main thread this.focus(alert); this.setWindow(alert.window()); }
protected NSRect getFrame(final NSAlert alert, final NSView accessory) { final NSRect frame = new NSRect(alert.window().frame().size.width.doubleValue(), accessory.frame().size.height.doubleValue()); final NSEnumerator enumerator = accessory.subviews().objectEnumerator(); NSObject next; while(null != (next = enumerator.nextObject())) { final NSView subview = Rococoa.cast(next, NSView.class); frame.size.height = new CGFloat(frame.size.height.doubleValue() + subview.frame().size.height.doubleValue() + SUBVIEWS_VERTICAL_SPACE * 2); } return frame; }
@Override public NSView getAccessoryView(final NSAlert alert) { view = NSView.create(new NSRect(alert.window().frame().size.width.doubleValue(), 0)); if(options.keychain) { keychainCheckbox = NSButton.buttonWithFrame(new NSRect(alert.window().frame().size.width.doubleValue(), 18)); keychainCheckbox.setTitle(LocaleFactory.localizedString("Save Password", "Keychain")); keychainCheckbox.setAction(Foundation.selector("keychainCheckboxClicked:")); keychainCheckbox.setTarget(this.id()); keychainCheckbox.setButtonType(NSButton.NSSwitchButton); keychainCheckbox.setState(options.save ? NSCell.NSOnState : NSCell.NSOffState); keychainCheckbox.sizeToFit(); // Override accessory view with location menu added keychainCheckbox.setFrameOrigin(new NSPoint(0, this.getFrame(alert, view).size.height.doubleValue())); view.addSubview(keychainCheckbox); } inputField = NSSecureTextField.textfieldWithFrame(new NSRect(alert.window().frame().size.width.doubleValue(), 22)); inputField.cell().setPlaceholderString(options.getPasswordPlaceholder()); inputField.setFrameOrigin(new NSPoint(0, this.getFrame(alert, view).size.height.doubleValue() + view.subviews().count().doubleValue() * SUBVIEWS_VERTICAL_SPACE)); view.addSubview(inputField); return view; }
public NSView getAccessoryView(final NSAlert alert) { view = NSView.create(new NSRect(alert.window().frame().size.width.doubleValue(), 0)); confirmField = NSSecureTextField.textfieldWithFrame(new NSRect(alert.window().frame().size.width.doubleValue(), 22)); confirmField.cell().setPlaceholderString(LocaleFactory.localizedString("Confirm Passphrase", "Cryptomator")); confirmField.setFrameOrigin(new NSPoint(0, 0)); view.addSubview(confirmField); strengthIndicator = NSLevelIndicator.levelIndicatorWithFrame(new NSRect(alert.window().frame().size.width.doubleValue(), 18)); if(strengthIndicator.respondsToSelector(Foundation.selector("setLevelIndicatorStyle:"))) { strengthIndicator.setLevelIndicatorStyle(NSLevelIndicator.NSDiscreteCapacityLevelIndicatorStyle); } strengthIndicator.setFrameOrigin(new NSPoint(0, this.getFrame(alert, view).size.height.doubleValue() + view.subviews().count().doubleValue() * SUBVIEWS_VERTICAL_SPACE)); view.addSubview(strengthIndicator); passwordField = NSSecureTextField.textfieldWithFrame(new NSRect(alert.window().frame().size.width.doubleValue(), 22)); passwordField.cell().setPlaceholderString(LocaleFactory.localizedString("Passphrase", "Cryptomator")); notificationCenter.addObserver(this.id(), Foundation.selector("passwordFieldTextDidChange:"), NSControl.NSControlTextDidChangeNotification, passwordField.id()); passwordField.setFrameOrigin(new NSPoint(0, this.getFrame(alert, view).size.height.doubleValue() + view.subviews().count().doubleValue() * SUBVIEWS_VERTICAL_SPACE)); view.addSubview(passwordField); final NSView accessory = super.getAccessoryView(alert); accessory.setFrameSize(this.getFrame(alert, accessory).size); accessory.setFrameOrigin(new NSPoint(0, this.getFrame(alert, view).size.height.doubleValue() + view.subviews().count().doubleValue() * SUBVIEWS_VERTICAL_SPACE)); view.addSubview(accessory); return view; }