simplify GTDUCollector a bit more
[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.openapi.util.NlsContexts;
8 import com.intellij.packaging.impl.artifacts.InvalidArtifact;
9
10 import javax.swing.*;
11
12 public class InvalidArtifactConfigurable extends ArtifactConfigurableBase {
13   private final @NlsContexts.Label String myErrorMessage;
14
15   public InvalidArtifactConfigurable(InvalidArtifact originalArtifact,
16                                      ArtifactsStructureConfigurableContextImpl artifactsStructureContext,
17                                      Runnable updateTree) {
18     super(originalArtifact, artifactsStructureContext, updateTree, false);
19     myErrorMessage = originalArtifact.getErrorMessage();
20   }
21
22   @Override
23   public void setDisplayName(String name) {
24   }
25
26   @Override
27   public JComponent createOptionsPanel() {
28     return new InvalidArtifactComponent(myErrorMessage).myMainPanel;
29   }
30
31   @Override
32   public String getHelpTopic() {
33     return null;
34   }
35
36   @Override
37   public boolean isModified() {
38     return false;
39   }
40
41   @Override
42   public void apply() throws ConfigurationException {
43   }
44
45   private static final class InvalidArtifactComponent {
46     private JPanel myMainPanel;
47     private MultiLineLabel myDescriptionLabel;
48     private JLabel myIconLabel;
49
50     private InvalidArtifactComponent(@NlsContexts.Label String errorMessage) {
51       myIconLabel.setIcon(AllIcons.General.BalloonError);
52       myDescriptionLabel.setText(errorMessage);
53     }
54   }
55 }