aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTor Norbye <tnorbye@google.com>2011-01-17 12:11:51 -0800
committerAndroid Code Review <code-review@android.com>2011-01-17 12:11:51 -0800
commit5c5e8fc52062bf1ab74e0bbcf528dd24d7aeffdf (patch)
tree2b245a52fdd57421dea3bf4c91c4b25a93fdcae5
parent798d453d27485eb49ed45393eab868f5b2491739 (diff)
parentbf92db481ddb90a41e8bb21b9bfe52756f2c4e55 (diff)
downloadsdk-5c5e8fc52062bf1ab74e0bbcf528dd24d7aeffdf.zip
sdk-5c5e8fc52062bf1ab74e0bbcf528dd24d7aeffdf.tar.gz
sdk-5c5e8fc52062bf1ab74e0bbcf528dd24d7aeffdf.tar.bz2
Merge "Combine missing class errors with logger errors" into tools_r9
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/GraphicalEditorPart.java45
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/xml/Hyperlinks.java10
2 files changed, 37 insertions, 18 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/GraphicalEditorPart.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/GraphicalEditorPart.java
index 6cadd05..1783ab3 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/GraphicalEditorPart.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/GraphicalEditorPart.java
@@ -54,6 +54,7 @@ import com.android.ide.eclipse.adt.internal.editors.layout.gre.RulesEngine;
import com.android.ide.eclipse.adt.internal.editors.ui.DecorComposite;
import com.android.ide.eclipse.adt.internal.editors.uimodel.UiDocumentNode;
import com.android.ide.eclipse.adt.internal.editors.uimodel.UiElementNode;
+import com.android.ide.eclipse.adt.internal.editors.xml.Hyperlinks;
import com.android.ide.eclipse.adt.internal.preferences.AdtPrefs;
import com.android.ide.eclipse.adt.internal.resources.ResourceType;
import com.android.ide.eclipse.adt.internal.resources.configurations.FolderConfiguration;
@@ -1488,20 +1489,23 @@ public class GraphicalEditorPart extends EditorPart
logger.error(null, "Unexpected error in rendering, no details given",
null /*data*/);
}
+ // These errors will be included in the log warnings which are
+ // displayed regardless of render success status below
+ }
+
+ // We might have detected some missing classes and swapped them by a mock view,
+ // or run into fidelity warnings or missing resources, so emit all these
+ // warnings
+ Set<String> missingClasses = mProjectCallback.getMissingClasses();
+ Set<String> brokenClasses = mProjectCallback.getUninstantiatableClasses();
+ if (logger.hasProblems()) {
displayLoggerProblems(iProject, logger);
+ displayFailingClasses(missingClasses, brokenClasses, true);
+ } else if (missingClasses.size() > 0 || brokenClasses.size() > 0) {
+ displayFailingClasses(missingClasses, brokenClasses, false);
} else {
- // Success means there was no exception. But we might have detected
- // some missing classes and swapped them by a mock view.
- Set<String> missingClasses = mProjectCallback.getMissingClasses();
- Set<String> brokenClasses = mProjectCallback.getUninstantiatableClasses();
- if (missingClasses.size() > 0 || brokenClasses.size() > 0) {
- displayFailingClasses(missingClasses, brokenClasses);
- } else if (logger.hasProblems()) {
- displayLoggerProblems(iProject, logger);
- } else {
- // Nope, no missing or broken classes. Clear success, congrats!
- hideError();
- }
+ // Nope, no missing or broken classes. Clear success, congrats!
+ hideError();
}
model.refreshUi();
@@ -1795,8 +1799,15 @@ public class GraphicalEditorPart extends EditorPart
* Switches the sash to display the error label to show a list of
* missing classes and give options to create them.
*/
- private void displayFailingClasses(Set<String> missingClasses, Set<String> brokenClasses) {
- mErrorLabel.setText("");
+ private void displayFailingClasses(Set<String> missingClasses, Set<String> brokenClasses,
+ boolean append) {
+ if (missingClasses.size() == 0 && brokenClasses.size() == 0) {
+ return;
+ }
+
+ if (!append) {
+ mErrorLabel.setText("");
+ }
if (missingClasses.size() > 0) {
addText(mErrorLabel, "The following classes could not be found:\n");
for (String clazz : missingClasses) {
@@ -2095,8 +2106,10 @@ public class GraphicalEditorPart extends EditorPart
}
if (r instanceof ClassLinkStyleRange) {
- String link = mErrorLabel.getText(r.start, r.start + r.length - 1);
- createNewClass(link);
+ String fqcn = mErrorLabel.getText(r.start, r.start + r.length - 1);
+ if (!Hyperlinks.openJavaClass(getProject(), fqcn)) {
+ createNewClass(fqcn);
+ }
}
LayoutCanvas canvas = getCanvasControl();
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/xml/Hyperlinks.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/xml/Hyperlinks.java
index f593619..2fa42b1 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/xml/Hyperlinks.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/xml/Hyperlinks.java
@@ -645,8 +645,14 @@ public class Hyperlinks {
return null;
}
- /** Opens a Java class for the given fully qualified class name */
- private static boolean openJavaClass(IProject project, String fqcn) {
+ /**
+ * Opens a Java class for the given fully qualified class name
+ *
+ * @param project the project containing the class
+ * @param fqcn the fully qualified class name of the class to be opened
+ * @return true if the class was opened, false otherwise
+ */
+ public static boolean openJavaClass(IProject project, String fqcn) {
if (fqcn == null) {
return false;
}