Changeset 1443 for trunk


Ignore:
Timestamp:
11/08/19 13:23:37 (4 years ago)
Author:
bnemhaus
Message:

Changed Label::progressSurrogate mode so that a null return values signifies that asking for surrogate mode makes no sense because there are no labels in play.

Fixed bug with DisplayController::toggleSurrogateMode. It was printing incorrect messages to the message bay when the user was supposed to be exiting surrogate mode. This was fixed by querying Label::isInSurrogateMode.

Location:
trunk/src/org/expeditee
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/expeditee/encryption/items/surrogates/Label.java

    r1431 r1443  
    3838        }
    3939       
     40        public static boolean isInSurrogateMode() {
     41                return isInSurrogateMode;
     42        }
     43       
     44        /**
     45         * Progresses surrogate mode and returns a list of labels that are currently in effect.
     46         * @param context The list of expeditee Items to be considered for context.  These are checked for labels.
     47         * @return Returns either:
     48         *      <ol type='a'>
     49         *              <li> A list of length 1 specifying the label that the current surrogate mode accepts or </li>
     50         *              <li> A list of length 0 which specifies that surrogate mode is in unprivileged view or </li>
     51         *              <li> Null, which means there are no labels in play on this frame
     52         *                      (so asking for surrogate mode does not make sense) </li>
     53         *  </ol>
     54         */
    4055        public static List<String> progressSurrogateMode(ItemsList context) {
    4156                // Maintain the local cache of user labels
     
    4560               
    4661                List<String> localLabels = getLabelsFromContext(context);
    47                 if (userLabels.isEmpty() || localLabels.isEmpty()) {
    48                         // If either the labels in the context are empty or the user
    49                         // has no labels then we are not able to enter surrogate mode.
    50                         return userLabels;
    51                 }
     62                if (localLabels.isEmpty()) {
     63                        // If there are no labels on this Frame return null;
     64                        return null;
     65                }
    5266               
    5367                ArrayList<String> intersection = new ArrayList<String>(userLabels);
  • trunk/src/org/expeditee/gui/DisplayController.java

    r1431 r1443  
    12381238                ItemsList primaryBodyCopy = new ItemsList(primaryBody);
    12391239                List<String> accessibleLabelsNames = Label.progressSurrogateMode(primaryBodyCopy);
    1240                 if (accessibleLabelsNames.isEmpty()) {
    1241                         MessageBay.displayMessage("Surrogate Mode currently accepts no labels. (Unprivileged view)");
     1240                if (Label.isInSurrogateMode()) {
     1241                        if (accessibleLabelsNames == null) {
     1242                                MessageBay.displayMessage("Unable to enter surrogate mode as there are no encryption labels on the current Frame");
     1243                        } else if (accessibleLabelsNames.isEmpty()) {
     1244                                MessageBay.displayMessage("Surrogate Mode currently accepts no labels. (Unprivileged view)");
     1245                        } else {
     1246                                StringBuilder sb = new StringBuilder("Surrogate Mode currently accepts labels: ");
     1247                                for (String acceessibleLabel: accessibleLabelsNames) {
     1248                                        sb.append(acceessibleLabel + ", ");
     1249                                }
     1250                                String message = sb.substring(0, sb.length() - 2);
     1251                                MessageBay.displayMessage(message);
     1252                        }
    12421253                } else {
    1243                         StringBuilder sb = new StringBuilder("Surrogate Mode currently accepts labels: ");
    1244                         for (String acceessibleLabel: accessibleLabelsNames) {
    1245                                 sb.append(acceessibleLabel + ", ");
    1246                         }
    1247                         String message = sb.substring(0, sb.length() - 2);
    1248                         MessageBay.displayMessage(message);
    1249                 }
    1250                
     1254                        if (accessibleLabelsNames == null) {
     1255                                MessageBay.displayMessage("Unable to enter surrogate mode as there are no encryption labels on the current Frame");
     1256                        } else {
     1257                                MessageBay.displayMessage("No longer in surrogate mode.");
     1258                        }
     1259                }
     1260                               
    12511261                getCurrentFrame().parse();
    12521262                getCurrentFrame().refreshSize();
Note: See TracChangeset for help on using the changeset viewer.