cd88911bf39125dc41f421793414544f8c7467c7
[idea/community.git] / java / idea-ui / src / com / intellij / openapi / roots / ui / configuration / artifacts / InvalidArtifactConfigurable.java
1 // Copyright 2000-2020 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.openapi.roots.ui.configuration.artifacts;
3
4 import com.intellij.icons.AllIcons;
5 import com.intellij.openapi.options.ConfigurationException;
6 import com.intellij.openapi.ui.ex.MultiLineLabel;
7 import com.intellij.packaging.impl.artifacts.InvalidArtifact;
8
9 import javax.swing.*;
10
11 public class InvalidArtifactConfigurable extends ArtifactConfigurableBase {
12   private final String myErrorMessage;
13
14   public InvalidArtifactConfigurable(InvalidArtifact originalArtifact,
15                                      ArtifactsStructureConfigurableContextImpl artifactsStructureContext,
16                                      Runnable updateTree) {
17     super(originalArtifact, artifactsStructureContext, updateTree, false);
18     myErrorMessage = originalArtifact.getErrorMessage();
19   }
20
21   @Override
22   public void setDisplayName(String name) {
23   }
24
25   @Override
26   public JComponent createOptionsPanel() {
27     return new InvalidArtifactComponent(myErrorMessage).myMainPanel;
28   }
29
30   @Override
31   public String getHelpTopic() {
32     return null;
33   }
34
35   @Override
36   public boolean isModified() {
37     return false;
38   }
39
40   @Override
41   public void apply() throws ConfigurationException {
42   }
43
44   private static final class InvalidArtifactComponent {
45     private JPanel myMainPanel;
46     private MultiLineLabel myDescriptionLabel;
47     private JLabel myIconLabel;
48
49     private InvalidArtifactComponent(String errorMessage) {
50       myIconLabel.setIcon(AllIcons.General.BalloonError);
51       myDescriptionLabel.setText(errorMessage);
52     }
53   }
54 }