@Override
 protected void updateRootCustomPresentation(@NotNull DiffModelTree.RootTreeNode rootTreeNode) {
   ChangeType compositeChangeType = ChangeType.CHANGE;
   if (rootTreeNode.getRootId() != null) {
     ModelChange firstChange =
         Sequence.fromIterable(myChangeSet.getChangesForRoot(rootTreeNode.getRootId())).first();
     if (firstChange instanceof AddRootChange || firstChange instanceof DeleteRootChange) {
       compositeChangeType = firstChange.getType();
     } else if (firstChange == null) {
       compositeChangeType = null;
     }
   } else {
     if (myMetadataChangeSet == null
         || ListSequence.fromList(myMetadataChangeSet.getModelChanges()).isEmpty()) {
       compositeChangeType = null;
     }
   }
   rootTreeNode.setColor(
       (compositeChangeType == null ? null : ChangeColors.getForTree(compositeChangeType)));
 }
Example #2
0
 @NotNull
 private TreeMessage getMessage(
     @NotNull ModelChange modelChange, @NotNull EditableSModel modelDescriptor) {
   switch (modelChange.getType()) {
     case ADD:
       if (modelChange instanceof AddRootChange) {
         Project project = myRegistry.getProject();
         FileStatus modelStatus = getModelFileStatus(modelDescriptor, project);
         if (BaseVersionUtil.isAddedFileStatus(modelStatus)) {
           return getMessage(modelStatus);
         } else if (ConflictsUtil.isModelOrModuleConflicting(modelDescriptor, project)) {
           return getMessage(FileStatus.MERGED_WITH_CONFLICTS);
         }
       }
       return getMessage(FileStatus.ADDED);
     case CHANGE:
       return getMessage(FileStatus.MODIFIED);
     default:
       assert false;
       return getMessage(FileStatus.MERGED_WITH_CONFLICTS);
   }
 }