/** * Answers all available programs in the operating system. Note that a <code>Display</code> must * already exist to guarantee that this method returns an appropriate result. * * @return an array of programs */ public static Program[] getPrograms() { NSAutoreleasePool pool = (NSAutoreleasePool) new NSAutoreleasePool().alloc().init(); try { List<Program> vector = new ArrayList<>(); NSWorkspace workspace = NSWorkspace.sharedWorkspace(); NSArray array = new NSArray( OS.NSSearchPathForDirectoriesInDomains( OS.NSAllApplicationsDirectory, OS.NSAllDomainsMask, true)); int count = (int) /*64*/ array.count(); for (int i = 0; i < count; i++) { NSString path = new NSString(array.objectAtIndex(i)); NSFileManager fileManager = NSFileManager.defaultManager(); NSDirectoryEnumerator enumerator = fileManager.enumeratorAtPath(path); if (enumerator != null) { id id; while ((id = enumerator.nextObject()) != null) { enumerator.skipDescendents(); NSString fullPath = path.stringByAppendingPathComponent(new NSString(id.id)); if (workspace.isFilePackageAtPath(fullPath)) { NSBundle bundle = NSBundle.bundleWithPath(fullPath); if (bundle != null) { Program program = getProgram(bundle); if (program != null) vector.add(program); } } } } } return vector.toArray(new Program[vector.size()]); } finally { pool.release(); } }
/** * Look up an object by id number. Assumes the editing context is appropriately locked. * * @param ec The editing context to use * @param id The id to look up * @return The object, or null if no such id exists */ public static UserMessageSubscription forId(EOEditingContext ec, int id) { UserMessageSubscription obj = null; if (id > 0) { NSArray<UserMessageSubscription> objects = objectsMatchingValues(ec, "id", new Integer(id)); if (objects != null && objects.count() > 0) { obj = objects.objectAtIndex(0); } } return obj; }
/** * Renvoie le premier objet simple trouve dans la liste triee. Pour recuperer un tableau, utiliser * fetchAll(EOEditingContext, EOQualifier, NSArray). * * @param editingContext * @param qualifier * @param sortOrderings * @return Renvoie le premier objet trouve correspondant au qualifier, null si aucun trouve */ public static EOTypeGroupe fetchFirstByQualifier( EOEditingContext editingContext, EOQualifier qualifier, NSArray sortOrderings) { NSArray eoObjects = fetchAll(editingContext, qualifier, sortOrderings); EOTypeGroupe eoObject; int count = eoObjects.count(); if (count == 0) { eoObject = null; } else { eoObject = (EOTypeGroupe) eoObjects.objectAtIndex(0); } return eoObject; }
public WOActionResults submit() { if (selection == null) { search(); if (found != null && found.count() > 0) { selection = (PersonLink) found.objectAtIndex(0); } else { selection = defaultSelectionValue(); } } setValueForBinding(selection, "selection"); return (WOActionResults) valueForBinding("selectAction"); }
public String _alterPhraseDeletingColumnsWithNames( NSArray columnNames, NSArray entityGroup, EOSchemaGenerationOptions options) { StringBuffer phrase = new StringBuffer(); int j = columnNames.count(); for (int i = 0; i < j; i++) { phrase.append( "" + (i == 0 ? "" : this._alterPhraseJoinString()) + "remove column " + columnNames.objectAtIndex(i)); } return phrase.toString(); }
public static Category fetchCategory(EOEditingContext editingContext, EOQualifier qualifier) { NSArray<Category> eoObjects = _Category.fetchCategories(editingContext, qualifier, null); Category eoObject; int count = eoObjects.count(); if (count == 0) { eoObject = null; } else if (count == 1) { eoObject = (Category) eoObjects.objectAtIndex(0); } else { throw new IllegalStateException( "There was more than one Category that matched the qualifier '" + qualifier + "'."); } return eoObject; }
public static Group fetchGroup(EOEditingContext editingContext, EOQualifier qualifier) { NSArray<Group> eoObjects = _Group.fetchGroups(editingContext, qualifier, null); Group eoObject; int count = eoObjects.count(); if (count == 0) { eoObject = null; } else if (count == 1) { eoObject = (Group) eoObjects.objectAtIndex(0); } else { throw new IllegalStateException( "There was more than one Group that matched the qualifier '" + qualifier + "'."); } return eoObject; }
public static Employee fetchEmployee(EOEditingContext editingContext, EOQualifier qualifier) { NSArray<Employee> eoObjects = _Employee.fetchEmployees(editingContext, qualifier, null); Employee eoObject; int count = eoObjects.count(); if (count == 0) { eoObject = null; } else if (count == 1) { eoObject = (Employee) eoObjects.objectAtIndex(0); } else { throw new IllegalStateException( "There was more than one Employee that matched the qualifier '" + qualifier + "'."); } return eoObject; }
public static MovieRole fetchMovieRole(EOEditingContext editingContext, EOQualifier qualifier) { NSArray<MovieRole> eoObjects = _MovieRole.fetchMovieRoles(editingContext, qualifier, null); MovieRole eoObject; int count = eoObjects.count(); if (count == 0) { eoObject = null; } else if (count == 1) { eoObject = (MovieRole) eoObjects.objectAtIndex(0); } else { throw new IllegalStateException( "There was more than one MovieRole that matched the qualifier '" + qualifier + "'."); } return eoObject; }
/** * Renvoie l'objet correspondant au qualifier. Si plusieurs objets sont susceptibles d'etre * trouves, utiliser fetchFirstByQualifier(EOEditingContext, EOQualifier). Une exception est * declenchee si plusieurs objets sont trouves. * * @param editingContext * @param qualifier * @return L'objet qui correspond au qualifier passé en parametre. Si plusieurs objets sont * trouves, une exception est declenchee. Si aucun objet n'est trouve, null est renvoye. * @throws IllegalStateException */ public static EOTypeGroupe fetchByQualifier( EOEditingContext editingContext, EOQualifier qualifier) throws IllegalStateException { NSArray eoObjects = fetchAll(editingContext, qualifier, null); EOTypeGroupe eoObject; int count = eoObjects.count(); if (count == 0) { eoObject = null; } else if (count == 1) { eoObject = (EOTypeGroupe) eoObjects.objectAtIndex(0); } else { throw new IllegalStateException( "Il y a plus d'un objet qui correspond au qualifier '" + qualifier + "'."); } return eoObject; }
public static EOTypeUniteTemps fetchTypeUniteTemps( EOEditingContext editingContext, EOQualifier qualifier) { NSArray eoObjects = _EOTypeUniteTemps.fetchTypeUniteTempses(editingContext, qualifier, null); EOTypeUniteTemps eoObject; int count = eoObjects.count(); if (count == 0) { eoObject = null; } else if (count == 1) { eoObject = (EOTypeUniteTemps) eoObjects.objectAtIndex(0); } else { throw new IllegalStateException( "There was more than one TypeUniteTemps that matched the qualifier '" + qualifier + "'."); } return eoObject; }
protected PersonLink defaultSelectionValue() { NSArray list = (NSArray) valueForBinding("forcedList"); if (list != null && list.count() > 0) { return (PersonLink) EOUtilities.localInstanceOfObject(ec, (EOEnterpriseObject) list.objectAtIndex(0)); } list = (NSArray) session().valueForKey("personList"); if (list != null && list.count() > 0) { Enumeration enu = list.objectEnumerator(); while (enu.hasMoreElements()) { EOEnterpriseObject pers = (EOEnterpriseObject) enu.nextElement(); if (entity().equals(pers.entityName())) { return (PersonLink) pers; } } } return null; }
/** * Retrieves the first object that matches a set of keys and values, when sorted with the * specified sort orderings. * * @param context The editing context to use * @param sortOrderings the sort orderings * @param keysAndValues a dictionary of keys and values to match * @return the first entity that was retrieved, or null if there was none */ public static UserMessageSubscription firstObjectMatchingValues( EOEditingContext context, NSArray<EOSortOrdering> sortOrderings, NSDictionary<String, Object> keysAndValues) { @SuppressWarnings("unchecked") EOFetchSpecification fspec = new WCFetchSpecification( ENTITY_NAME, EOQualifier.qualifierToMatchAllValues(keysAndValues), sortOrderings); fspec.setFetchLimit(1); NSArray<UserMessageSubscription> objects = objectsWithFetchSpecification(context, fspec); if (objects.count() == 0) { return null; } else { return objects.objectAtIndex(0); } }
public static PDBPresentation fetchPDBPresentation( EOEditingContext editingContext, EOQualifier qualifier) { NSArray<PDBPresentation> eoObjects = _PDBPresentation.fetchPDBPresentations(editingContext, qualifier, null); PDBPresentation eoObject; int count = eoObjects.count(); if (count == 0) { eoObject = null; } else if (count == 1) { eoObject = eoObjects.objectAtIndex(0); } else { throw new IllegalStateException( "There was more than one PDBPresentation that matched the qualifier '" + qualifier + "'."); } return eoObject; }
protected void performSearchRequest(String request) { searchString = request; canCreate = false; search(); while (found == null || found.count() == 0) { searchString = searchString.substring(0, searchString.length() - 1); if (searchString.length() < 2) { searchString = request; setValueForBinding(null, "searchRequest"); return; } search(); } selection = (PersonLink) found.objectAtIndex(0); setValueForBinding(selection, "selection"); setValueForBinding(Person.Utility.fullName(selection, true, 2, 2, 2), "searchRequest"); valueForBinding("selectAction"); }
/** * Displays the Tracker rectangles for manipulation by the user. Returns when the user has either * finished manipulating the rectangles or has cancelled the Tracker. * * @return <code>true</code> if the user did not cancel the Tracker, <code>false</code> otherwise * @exception SWTException * <ul> * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver * </ul> */ public boolean open() { checkWidget(); Display display = this.display; cancelled = false; tracking = true; window = (NSWindow) new NSWindow().alloc(); NSArray screens = NSScreen.screens(); double /*float*/ minX = Float.MAX_VALUE, maxX = Float.MIN_VALUE; double /*float*/ minY = Float.MAX_VALUE, maxY = Float.MIN_VALUE; int count = (int) /*64*/ screens.count(); for (int i = 0; i < count; i++) { NSScreen screen = new NSScreen(screens.objectAtIndex(i)); NSRect frame = screen.frame(); double /*float*/ x1 = frame.x, x2 = frame.x + frame.width; double /*float*/ y1 = frame.y, y2 = frame.y + frame.height; if (x1 < minX) minX = x1; if (x2 < minX) minX = x2; if (x1 > maxX) maxX = x1; if (x2 > maxX) maxX = x2; if (y1 < minY) minY = y1; if (y2 < minY) minY = y2; if (y1 > maxY) maxY = y1; if (y2 > maxY) maxY = y2; } NSRect frame = new NSRect(); frame.x = minX; frame.y = minY; frame.width = maxX - minX; frame.height = maxY - minY; window = window.initWithContentRect( frame, OS.NSBorderlessWindowMask, OS.NSBackingStoreBuffered, false); window.setOpaque(false); window.setLevel(OS.NSStatusWindowLevel); window.setContentView(null); window.setBackgroundColor(NSColor.clearColor()); NSGraphicsContext context = window.graphicsContext(); NSGraphicsContext.static_saveGraphicsState(); NSGraphicsContext.setCurrentContext(context); context.setCompositingOperation(OS.NSCompositeClear); frame.x = frame.y = 0; NSBezierPath.fillRect(frame); NSGraphicsContext.static_restoreGraphicsState(); window.orderFrontRegardless(); drawRectangles(window, rectangles, false); /* * If exactly one of UP/DOWN is specified as a style then set the cursor * orientation accordingly (the same is done for LEFT/RIGHT styles below). */ int vStyle = style & (SWT.UP | SWT.DOWN); if (vStyle == SWT.UP || vStyle == SWT.DOWN) { cursorOrientation |= vStyle; } int hStyle = style & (SWT.LEFT | SWT.RIGHT); if (hStyle == SWT.LEFT || hStyle == SWT.RIGHT) { cursorOrientation |= hStyle; } Point cursorPos; boolean down = false; NSApplication application = NSApplication.sharedApplication(); NSEvent currentEvent = application.currentEvent(); if (currentEvent != null) { switch ((int) /*64*/ currentEvent.type()) { case OS.NSLeftMouseDown: case OS.NSLeftMouseDragged: case OS.NSRightMouseDown: case OS.NSRightMouseDragged: case OS.NSOtherMouseDown: case OS.NSOtherMouseDragged: down = true; } } if (down) { cursorPos = display.getCursorLocation(); } else { if ((style & SWT.RESIZE) != 0) { cursorPos = adjustResizeCursor(true); } else { cursorPos = adjustMoveCursor(); } } if (cursorPos != null) { oldX = cursorPos.x; oldY = cursorPos.y; } Control oldTrackingControl = display.trackingControl; display.trackingControl = null; /* Tracker behaves like a Dialog with its own OS event loop. */ while (tracking && !cancelled) { display.addPool(); try { if (parent != null && parent.isDisposed()) break; display.runSkin(); display.runDeferredLayouts(); NSEvent event = application.nextEventMatchingMask( 0, NSDate.distantFuture(), OS.NSDefaultRunLoopMode, true); if (event == null) continue; int type = (int) /*64*/ event.type(); switch (type) { case OS.NSLeftMouseUp: case OS.NSRightMouseUp: case OS.NSOtherMouseUp: case OS.NSMouseMoved: case OS.NSLeftMouseDragged: case OS.NSRightMouseDragged: case OS.NSOtherMouseDragged: mouse(event); break; case OS.NSKeyDown: case OS.NSKeyUp: case OS.NSFlagsChanged: key(event); break; } boolean dispatch = true; switch (type) { case OS.NSLeftMouseDown: case OS.NSLeftMouseUp: case OS.NSRightMouseDown: case OS.NSRightMouseUp: case OS.NSOtherMouseDown: case OS.NSOtherMouseUp: case OS.NSMouseMoved: case OS.NSLeftMouseDragged: case OS.NSRightMouseDragged: case OS.NSOtherMouseDragged: case OS.NSMouseEntered: case OS.NSMouseExited: case OS.NSKeyDown: case OS.NSKeyUp: case OS.NSFlagsChanged: dispatch = false; } if (dispatch) application.sendEvent(event); if (clientCursor != null && resizeCursor == null) { display.lockCursor = false; clientCursor.handle.set(); display.lockCursor = true; } display.runAsyncMessages(false); } finally { display.removePool(); } } /* * Cleanup: If this tracker was resizing then the last cursor that it created * needs to be destroyed. */ if (resizeCursor != null) resizeCursor.dispose(); resizeCursor = null; if (oldTrackingControl != null && !oldTrackingControl.isDisposed()) { display.trackingControl = oldTrackingControl; } display.setCursor(display.findControl(true)); if (!isDisposed()) { drawRectangles(window, rectangles, true); } if (window != null) window.close(); tracking = false; window = null; return !cancelled; }
/** * Answer all program extensions in the operating system. Note that a <code>Display</code> must * already exist to guarantee that this method returns an appropriate result. * * @return an array of extensions */ public static String[] getExtensions() { NSAutoreleasePool pool = (NSAutoreleasePool) new NSAutoreleasePool().alloc().init(); try { NSMutableSet supportedDocumentTypes = (NSMutableSet) NSMutableSet.set(); NSWorkspace workspace = NSWorkspace.sharedWorkspace(); NSString CFBundleDocumentTypes = NSString.stringWith("CFBundleDocumentTypes"); NSString CFBundleTypeExtensions = NSString.stringWith("CFBundleTypeExtensions"); NSArray array = new NSArray( OS.NSSearchPathForDirectoriesInDomains( OS.NSAllApplicationsDirectory, OS.NSAllDomainsMask, true)); int count = (int) /*64*/ array.count(); for (int i = 0; i < count; i++) { NSString path = new NSString(array.objectAtIndex(i)); NSFileManager fileManager = NSFileManager.defaultManager(); NSDirectoryEnumerator enumerator = fileManager.enumeratorAtPath(path); if (enumerator != null) { id id; while ((id = enumerator.nextObject()) != null) { enumerator.skipDescendents(); NSString filePath = new NSString(id.id); NSString fullPath = path.stringByAppendingPathComponent(filePath); if (workspace.isFilePackageAtPath(fullPath)) { NSBundle bundle = NSBundle.bundleWithPath(fullPath); id = bundle != null ? bundle.infoDictionary().objectForKey(CFBundleDocumentTypes) : null; if (id != null) { NSDictionary documentTypes = new NSDictionary(id.id); NSEnumerator documentTypesEnumerator = documentTypes.objectEnumerator(); while ((id = documentTypesEnumerator.nextObject()) != null) { NSDictionary documentType = new NSDictionary(id.id); id = documentType.objectForKey(CFBundleTypeExtensions); if (id != null) { supportedDocumentTypes.addObjectsFromArray(new NSArray(id.id)); } } } } } } } int i = 0; String[] exts = new String[(int) /*64*/ supportedDocumentTypes.count()]; NSEnumerator enumerator = supportedDocumentTypes.objectEnumerator(); id id; while ((id = enumerator.nextObject()) != null) { String ext = new NSString(id.id).getString(); if (!ext.equals("*")) exts[i++] = "." + ext; } if (i != exts.length) { String[] temp = new String[i]; System.arraycopy(exts, 0, temp, 0, i); exts = temp; } return exts; } finally { pool.release(); } }
// ---------------------------------------------------------- public void takeFormValues(NSDictionary<?, ?> formValues) { WCConfigurationFile configuration = Application.configurationProperties(); if (log.isDebugEnabled()) { log.debug("takeFormValues(): initial config = "); log.debug(configuration.configSettingsAsString()); } String email = storeFormValueToConfig( formValues, "coreAdminEmail", "Please specify the administrator's e-mail address."); storeFormValueToConfig(formValues, "adminNotifyAddrs", null); String authDomainName = configuration.getProperty("authenticator.default"); String username = storeFormValueToConfig( formValues, "AdminUsername", "Please specify the administrator's user name."); if (log.isDebugEnabled()) { log.debug("takeFormValues(): middle = "); log.debug(configuration.configSettingsAsString()); } if (authDomainName == null || authDomainName.equals("")) { error("Cannot identify default institution's " + "authentication configuration."); } else if (username != null && !hasMessages()) { EOEditingContext ec = WCEC.newEditingContext(); try { ec.lock(); AuthenticationDomain domain = AuthenticationDomain.authDomainByName(authDomainName); NSArray<?> users = EOUtilities.objectsMatchingValues( ec, User.ENTITY_NAME, new NSDictionary<String, Object>( new Object[] {username, domain}, new String[] {User.USER_NAME_KEY, User.AUTHENTICATION_DOMAIN_KEY})); User admin; if (users.count() > 0) { admin = (User) users.objectAtIndex(0); admin.setEmail(email); String first = extractFormValue(formValues, "AdminFirstName"); if (first != null && !first.equals("")) { admin.setFirstName(first); } String last = extractFormValue(formValues, "AdminLastName"); if (last != null && !last.equals("")) { admin.setLastName(last); } ec.saveChanges(); } else { String password = storeFormValueToConfig( formValues, "AdminPassword", "An administrator password is required."); if (authDomainName.equals(DatabaseAuthenticator.class.getName()) && (password == null || password.equals(""))) { // Don't need this anymore, since the error message is // posted by storeFormValuesToConfig() above. // errorMessage( // "An administrator password is required." ); } else { admin = User.createUser(username, password, domain, (byte) 100, ec); admin.setEmail(email); String first = extractFormValue(formValues, "AdminFirstName"); if (first != null && !first.equals("")) { admin.setFirstName(first); } String last = extractFormValue(formValues, "AdminLastName"); if (last != null && !last.equals("")) { admin.setLastName(last); } ec.saveChanges(); } } } finally { ec.unlock(); ec.dispose(); } } if (log.isDebugEnabled()) { log.debug("takeFormValues(): near end = "); log.debug(configuration.configSettingsAsString()); } if (!hasMessages()) { configuration.remove("AdminFirstName"); configuration.remove("AdminLastName"); } if (log.isDebugEnabled()) { log.debug("takeFormValues(): finals = "); log.debug(configuration.configSettingsAsString()); } }