Show error/warn messages

This commit is contained in:
Alexander Lobas
2012-11-01 17:46:30 +04:00
parent a44feb483d
commit 0a06fac5c5
2 changed files with 22 additions and 3 deletions
@@ -77,6 +77,7 @@ import javax.swing.*;
import java.awt.*;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.List;
/**
@@ -327,6 +328,8 @@ public final class AndroidDesignerEditorPanel extends DesignerEditorPanel {
final RenderSession session = mySession = result.getSession();
mySessionAlarm.cancelAllRequests();
final List<FixableIssueMessage> warnMessages = result.getWarnMessages();
ApplicationManager.getApplication().invokeLater(new Runnable() {
@Override
public void run() {
@@ -337,6 +340,19 @@ public final class AndroidDesignerEditorPanel extends DesignerEditorPanel {
if (updatePalette) {
updatePalette(myLastTarget);
}
if (warnMessages.isEmpty()) {
showWarnMessages(null);
}
else {
List<FixableMessageInfo> messages = new ArrayList<FixableMessageInfo>();
for (FixableIssueMessage message : warnMessages) {
messages.add(
new FixableMessageInfo(false, message.myBeforeLinkText, message.myLinkText, message.myAfterLinkText,
message.myQuickFix,
message.myAdditionalFixes));
}
showWarnMessages(messages);
}
}
}
catch (Throwable e) {
@@ -443,7 +459,6 @@ public final class AndroidDesignerEditorPanel extends DesignerEditorPanel {
@Override
public void run() {
myProfileAction.getProfileManager().showCustomDevicesDialog();
// XXX
}
}, null));
}
@@ -479,6 +494,7 @@ public final class AndroidDesignerEditorPanel extends DesignerEditorPanel {
if (warnMessages == null) {
info.myShowMessage = myParseTime || renderError;
info.myShowLog = !renderError;
info.myShowStack = renderError;
}
else {
info.myShowLog = false;
@@ -407,8 +407,6 @@ public abstract class DesignerEditorPanel extends JPanel implements DataProvider
myErrorMessages.removeAll();
if (info.myShowStack) {
info.myMessages.add(0, new FixableMessageInfo(true, info.myDisplayMessage, "", "", null, null));
ByteArrayOutputStream stream = new ByteArrayOutputStream();
info.myThrowable.printStackTrace(new PrintStream(stream));
myErrorStack.setText(stream.toString());
@@ -419,6 +417,7 @@ public abstract class DesignerEditorPanel extends JPanel implements DataProvider
myErrorStackLayout.show(myErrorStackPanel, ERROR_NO_STACK_CARD);
}
addErrorMessage(new FixableMessageInfo(true, info.myDisplayMessage, "", "", null, null), Messages.getErrorIcon());
for (FixableMessageInfo message : info.myMessages) {
addErrorMessage(message, message.myErrorIcon ? Messages.getErrorIcon() : Messages.getWarningIcon());
}
@@ -481,6 +480,10 @@ public abstract class DesignerEditorPanel extends JPanel implements DataProvider
}
}
protected final void showWarnMessages(@Nullable List<FixableMessageInfo> messages) {
// XXX
}
private void createProgressPanel() {
myProgressIcon = new AsyncProcessIcon("Designer progress");
myProgressMessage = new JLabel();