get rid of intellij.build.toolbox.litegen parameter and use BuildOptions.TOOLBOX_LITE...
[idea/community.git] / platform / core-ui / src / ide / UiActivity.java
1 // Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 package com.intellij.ide;
3
4 import com.intellij.util.ui.update.ComparableObject;
5 import com.intellij.util.ui.update.ComparableObjectCheck;
6 import org.jetbrains.annotations.NotNull;
7 import org.jetbrains.annotations.Nullable;
8
9 import java.util.ArrayList;
10 import java.util.Arrays;
11 import java.util.List;
12
13 public class UiActivity implements ComparableObject {
14   private final List<String> myElements = new ArrayList<>();
15
16   public UiActivity(@NotNull String ... elements) {
17     this(elements, null);
18   }
19
20   protected UiActivity(@NotNull String[] elements1, @Nullable String[] elements2) {
21     myElements.addAll(Arrays.asList(elements1));
22     if (elements2 != null) {
23       myElements.addAll(Arrays.asList(elements2));
24     }
25   }
26
27   @NotNull
28   @Override
29   public Object[] getEqualityObjects() {
30     return new Object[] {myElements};
31   }
32
33   @Override
34   public String toString() {
35     return "UiActivity: " + myElements;
36   }
37
38   @Override
39   public int hashCode() {
40     return ComparableObjectCheck.hashCode(this, super.hashCode());
41   }
42
43   @Override
44   public boolean equals(Object obj) {
45     return ComparableObjectCheck.equals(this, obj);
46   }
47
48   public final boolean isSameOrGeneralFor(UiActivity other) {
49     if (myElements.size() > other.myElements.size()) return false;
50
51     for (int i = 0; i < myElements.size(); i++) {
52       if (!myElements.get(i).equals(other.myElements.get(i))) return false;
53     }
54
55     return true;
56   }
57
58   public static class Focus extends UiActivity {
59
60     public Focus(String ... subOperation) {
61       super(new String[] {"focus"}, subOperation);
62     }
63
64   }
65
66   public static class AsyncBgOperation extends UiActivity {
67     public AsyncBgOperation(String operationName) {
68       super("asyncBgOperation", operationName);
69     }
70   }
71
72   public static class Progress extends UiActivity {
73     public Progress(String type, String id) {
74       super("progress", type, id);
75     }
76
77     public static class Modal extends Progress {
78       public Modal(String id) {
79         super("modal", id);
80       }
81     }
82   }
83 }