Esempio n. 1
0
 public boolean listIsEmpty() {
   NSArray list = found;
   if (list != null && list.count() > 0) return false;
   list = (NSArray) valueForBinding("forcedList");
   if (list != null && list.count() > 0) return false;
   list = personList();
   if (list != null && list.count() > 0) return false;
   return true;
 }
Esempio n. 2
0
 /**
  * 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();
   }
 }
Esempio n. 3
0
 /*
  * [PJYF Oct 19 2004]
  * This is a bad hack to get WO to create indes for external keys.
  * We use the primary key constrain generation to create our indexes.
  * But we need to be carefull not to overwrite previous constrains
  *
  */
 protected boolean isSinglePrimaryKeyAttribute(EOAttribute attribute) {
   if (attribute == null) return false;
   EOEntity entity = (EOEntity) attribute.entity();
   if ((entity == null) || entity.isAbstractEntity() || (entity.externalName() == null))
     return false;
   NSArray primaryKeyAttributes = entity.primaryKeyAttributes();
   if (primaryKeyAttributes.count() != 1) return false;
   return attribute.name().equals(((EOAttribute) primaryKeyAttributes.lastObject()).name());
 }
Esempio n. 4
0
 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;
 }
 /**
  * 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;
 }
Esempio n. 6
0
 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");
 }
Esempio n. 7
0
 /**
  * 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;
 }
Esempio n. 8
0
  public void initCustomerIssues() {
    EOFetchSpecification fs;
    NSDictionary bindings = null;
    Session s = (Session) session();
    NSMutableArray qual = new NSMutableArray();
    NSMutableArray qual1 = new NSMutableArray();
    EOQualifier qualifier;

    // 'Open items'
    // qual.addObject(EOQualifier.qualifierWithQualifierFormat("bugStatus !='CLOSED'", null));
    // qual.addObject(EOQualifier.qualifierWithQualifierFormat("bugStatus !='RESOLVED'", null));
    // qual.addObject(EOQualifier.qualifierWithQualifierFormat("bugStatus !='VERIFIED'", null));

    // Taser
    qual1.addObject(EOQualifier.qualifierWithQualifierFormat("type = 'Prospect'", null));
    qual1.addObject(EOQualifier.qualifierWithQualifierFormat("type = 'Customer'", null));
    qual.addObject(new EOOrQualifier(qual1));

    // Single Customer
    if (customerId() != null) {
      qual.addObject(EOQualifier.qualifierWithQualifierFormat("bugId=" + customerId(), null));
      showProductSelector = true;
    } else {
      // Products
      if (selectedProducts.count() == 1) {
        if (selectedProducts.contains("Trusted Access")) {
          qual.addObject(
              EOQualifier.qualifierWithQualifierFormat(
                  "product.productName = 'Device: Trusted Access'", null));
        } else if (selectedProducts.contains("Secure Storage")) {
          qual.addObject(
              EOQualifier.qualifierWithQualifierFormat(
                  "product.productName = 'Device: Secure Storage'", null));
        }
      }
    }

    Object orderings[] = {
      EOSortOrdering.sortOrderingWithKey("version", EOSortOrdering.CompareAscending),
      EOSortOrdering.sortOrderingWithKey("targetMilestone", EOSortOrdering.CompareAscending),
      EOSortOrdering.sortOrderingWithKey(
          "priority", EOSortOrdering.CompareCaseInsensitiveAscending),
      EOSortOrdering.sortOrderingWithKey(
          "bugSeverity", EOSortOrdering.CompareCaseInsensitiveAscending),
    };

    fs = new EOFetchSpecification("Item", new EOAndQualifier(qual), new NSArray(orderings));
    fs.setRefreshesRefetchedObjects(true);

    ((EODatabaseDataSource) customerIssueDisplayGroup.dataSource()).setFetchSpecification(fs);
    customerIssueDisplayGroup.fetch();
  }
Esempio n. 9
0
 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();
 }
Esempio n. 10
0
 public void search() {
   try {
     found = Person.Utility.search(ec, entity(), searchString);
     if ((found == null || found.count() == 0) && alterEntity() != null)
       found = Person.Utility.search(ec, alterEntity(), searchString);
   } catch (Exception e) {
     searchMessage = e.getMessage();
     canCreate = false;
     return;
   }
   if (found.count() < 1) {
     searchMessage = (String) session().valueForKeyPath("strings.Strings.messages.nothingFound");
     canCreate = Various.boolForObject(session().valueForKeyPath("readAccess.create." + entity()));
     return;
   }
   NSMutableArray fullList = (NSMutableArray) session().valueForKey("personList");
   NSMutableArray tmp = found.mutableClone();
   tmp.removeObjectsInArray(fullList);
   fullList.addObjectsFromArray(tmp);
   if (fullList.count() > 1) EOSortOrdering.sortArrayUsingKeyOrderArray(fullList, Person.sorter);
   searchMessage = null;
 }
Esempio n. 11
0
 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;
 }
Esempio n. 12
0
 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;
 }
Esempio n. 13
0
 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;
 }
Esempio n. 14
0
 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;
 }
Esempio n. 15
0
 /**
  * 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;
 }
Esempio n. 16
0
 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;
 }
Esempio n. 17
0
 public NSArray itemsWithMultipleParents() {
   if (itemsWithMultipleParents == null) {
     NSMutableArray temp = new NSMutableArray();
     Enumeration enumer = customerIssues().objectEnumerator();
     while (enumer.hasMoreElements()) {
       Item taserIssue = (Item) enumer.nextElement();
       NSArray parents =
           (NSArray) taserIssue.topMostParents(); // will get some non-taser parents.
       if ((parents != null) && (parents.count() > 1)) {
         temp.addObject(taserIssue);
       }
     }
     itemsWithMultipleParents = new NSArray(temp);
   }
   return itemsWithMultipleParents;
 }
  /**
   * 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);
    }
  }
Esempio n. 19
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;
 }
Esempio n. 20
0
 public NSArray personList() {
   NSArray forcedList = (NSArray) valueForBinding("forcedList");
   NSMutableArray result =
       (forcedList == null)
           ? new NSMutableArray()
           : EOUtilities.localInstancesOfObjects(ec, forcedList).mutableClone();
   NSArray personList = (NSArray) session().valueForKey("personList");
   if (personList != null && personList.count() > 0) {
     Enumeration enu = personList.objectEnumerator();
     while (enu.hasMoreElements()) {
       EOEnterpriseObject pers = (EOEnterpriseObject) enu.nextElement();
       if (!result.contains(pers)
           && (entity().equals(pers.entityName()) || pers.entityName().equals(alterEntity())))
         result.addObject(pers);
     }
   }
   return result;
 }
Esempio n. 21
0
  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");
  }
Esempio n. 22
0
  // ----------------------------------------------------------
  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());
    }
  }
Esempio n. 23
0
  /**
   * 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;
  }
Esempio n. 24
0
 /**
  * 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 WOComponent repartner() {
    for (UserSubmissionPair pair : userGroup().allObjects()) {
      Submission sub = pair.submission();

      if (sub != null && sub.result() != null) {
        for (Submission psub : sub.result().submissions()) {
          if (psub != sub
              && psub.assignmentOffering().assignment() != sub.assignmentOffering().assignment()) {
            log.warn(
                "found partner submission "
                    + psub.user()
                    + " #"
                    + psub.submitNumber()
                    + "\non incorrect assignment offering "
                    + psub.assignmentOffering());

            NSArray<AssignmentOffering> partnerOfferings =
                AssignmentOffering.objectsMatchingQualifier(
                    localContext(),
                    AssignmentOffering.courseOffering
                        .dot(CourseOffering.course)
                        .eq(sub.assignmentOffering().courseOffering().course())
                        .and(
                            AssignmentOffering.courseOffering
                                .dot(CourseOffering.students)
                                .eq(psub.user()))
                        .and(
                            AssignmentOffering.assignment.eq(
                                sub.assignmentOffering().assignment())));
            if (partnerOfferings.count() == 0) {
              log.error(
                  "Cannot locate correct assignment "
                      + "offering for partner"
                      + psub.user()
                      + " #"
                      + psub.submitNumber()
                      + "\non incorrect assignment offering "
                      + psub.assignmentOffering());
            } else {
              if (partnerOfferings.count() > 1) {
                log.warn(
                    "Multiple possible offerings for "
                        + "partner "
                        + psub.user()
                        + " #"
                        + psub.submitNumber()
                        + "\non incorrect assignment offering "
                        + psub.assignmentOffering());
                for (AssignmentOffering ao : partnerOfferings) {
                  log.warn("\t" + ao);
                }
              }

              psub.setAssignmentOfferingRelationship(partnerOfferings.get(0));
            }
          }
        }
      }
    }
    applyLocalChanges();
    return null;
  }
Esempio n. 26
0
    public NSArray primaryKeyConstraintStatementsForEntityGroup(NSArray entityGroup) {
      if (entityGroup == null) return NSArray.EmptyArray;

      NSMutableDictionary columnNameDictionary = new NSMutableDictionary();
      NSMutableArray primaryKeyConstraintExpressions = new NSMutableArray();

      for (Enumeration enumerator = entityGroup.objectEnumerator();
          enumerator.hasMoreElements(); ) {
        EOEntity entity = (EOEntity) enumerator.nextElement();
        String tableName = entity.externalName();
        NSArray primaryKeyAttributes = entity.primaryKeyAttributes();
        boolean singlePrimaryKey = primaryKeyAttributes.count() == 1;
        if ((tableName != null) && (!"".equals(tableName)) && (primaryKeyAttributes.count() > 0)) {
          NSArray expressions = super.primaryKeyConstraintStatementsForEntityGroup(entityGroup);
          if ((expressions != null) && (expressions.count() > 0))
            primaryKeyConstraintExpressions.addObjectsFromArray(expressions);
          for (Enumeration attributeEnumerator = primaryKeyAttributes.objectEnumerator();
              attributeEnumerator.hasMoreElements(); ) {
            String columnName = ((EOAttribute) attributeEnumerator.nextElement()).columnName();
            columnNameDictionary.setObjectForKey(
                columnName, entity.externalName() + "." + columnName);
            EOSQLExpression expression =
                this._expressionForString(
                    "create "
                        + (singlePrimaryKey ? "unique" : "")
                        + " index "
                        + entity.externalName()
                        + " "
                        + columnName);
            if (expression != null) primaryKeyConstraintExpressions.addObject(expression);
          }
        }
      }

      for (Enumeration enumerator = entityGroup.objectEnumerator();
          enumerator.hasMoreElements(); ) {
        EOEntity entity = (EOEntity) enumerator.nextElement();
        String tableName = entity.externalName();
        if ((tableName != null) && (!"".equals(tableName))) {
          for (Enumeration relationshipEnumerator = entity.relationships().objectEnumerator();
              relationshipEnumerator.hasMoreElements(); ) {
            EORelationship relationship = (EORelationship) relationshipEnumerator.nextElement();
            if (!relationship.isFlattened()) {
              NSArray destinationAttributes = relationship.destinationAttributes();

              // First exclude all the destination entity primary keys
              for (Enumeration attributeEnumerator =
                      relationship.destinationEntity().primaryKeyAttributes().objectEnumerator();
                  attributeEnumerator.hasMoreElements(); ) {
                EOAttribute attribute = (EOAttribute) attributeEnumerator.nextElement();
                columnNameDictionary.setObjectForKey(
                    attribute.columnName(),
                    relationship.destinationEntity().externalName() + "." + attribute.columnName());
              }
              // Then deal with our end of things
              for (Enumeration attributeEnumerator =
                      relationship.sourceAttributes().objectEnumerator();
                  attributeEnumerator.hasMoreElements(); ) {
                EOAttribute attribute = (EOAttribute) attributeEnumerator.nextElement();
                if ((!this.isSinglePrimaryKeyAttribute(attribute))
                    && (columnNameDictionary.objectForKey(tableName + "." + attribute.columnName())
                        != null)) {
                  columnNameDictionary.setObjectForKey(
                      attribute.columnName(), tableName + "." + attribute.columnName());
                  EOSQLExpression expression =
                      this._expressionForString(
                          "create index " + tableName + " " + attribute.columnName());
                  if (expression != null) primaryKeyConstraintExpressions.addObject(expression);
                }
              }
              // Then deal with the other side
              if (entity.model() == relationship.destinationEntity().model()) {
                for (Enumeration attributeEnumerator =
                        relationship.destinationAttributes().objectEnumerator();
                    attributeEnumerator.hasMoreElements(); ) {
                  EOAttribute attribute = (EOAttribute) attributeEnumerator.nextElement();
                  String destinationTableName = relationship.destinationEntity().externalName();
                  if ((destinationTableName != null) && (!"".equals(destinationTableName))) {
                    if ((!this.isSinglePrimaryKeyAttribute(attribute))
                        && (columnNameDictionary.objectForKey(
                                destinationTableName + "." + attribute.columnName())
                            != null)) {
                      columnNameDictionary.setObjectForKey(
                          attribute.columnName(),
                          destinationTableName + "." + attribute.columnName());
                      EOSQLExpression expression =
                          this._expressionForString(
                              "create index "
                                  + destinationTableName
                                  + " "
                                  + attribute.columnName());
                      if (expression != null) primaryKeyConstraintExpressions.addObject(expression);
                    }
                    if ((!relationship.isCompound())
                        && (relationship.sourceAttributes().count() == 1)
                        && (relationship.destinationAttributes().count() == 1)) {
                      String semantics;
                      switch (relationship.joinSemantic()) {
                        case EORelationship.FullOuterJoin: // '\001'
                        case EORelationship.LeftOuterJoin: // '\002'
                        case EORelationship.RightOuterJoin: // '\003'
                          semantics = "*";
                          break;

                        default:
                          semantics = "=";
                          break;
                      }
                      String sourceColumn =
                          ((EOAttribute) relationship.sourceAttributes().objectAtIndex(0))
                              .columnName();
                      String destinationColumn =
                          ((EOAttribute) relationship.destinationAttributes().objectAtIndex(0))
                              .columnName();
                      EOSQLExpression expression =
                          this._expressionForString(
                              "delete from _SYS_RELATIONSHIP where relationshipName = '"
                                  + relationship.name()
                                  + "' and source_table = '"
                                  + tableName
                                  + "' ");
                      if (expression != null) primaryKeyConstraintExpressions.addObject(expression);
                      expression =
                          this._expressionForString(
                              "insert into _SYS_RELATIONSHIP (relationshipName, source_table, source_column, dest_table, dest_column, operator, one_to_many) values ('"
                                  + relationship.name()
                                  + "','"
                                  + tableName
                                  + "','"
                                  + sourceColumn
                                  + "','"
                                  + destinationTableName
                                  + "','"
                                  + destinationColumn
                                  + "','"
                                  + semantics
                                  + "',"
                                  + (relationship.isToMany() ? 1 : 0)
                                  + ")");
                      if (expression != null) primaryKeyConstraintExpressions.addObject(expression);
                    }
                  }
                }
              }
            }
          }
        }
      }
      return primaryKeyConstraintExpressions.immutableClone();
    }