import com.intellij.ui.JBColor;
import com.intellij.ui.components.JBLabel;
import com.intellij.uiDesigner.core.GridLayoutManager;
+import com.intellij.util.ui.UIUtil;
import javax.swing.*;
import java.awt.*;
+import java.awt.event.FocusAdapter;
+import java.awt.event.FocusEvent;
import java.util.ArrayList;
import java.util.List;
private JPanel myHintsPanel;
private List<String> myHints = new ArrayList<String>() {{
- add("");
+ add(ourDefaultHintText);
}};
private int myShownHintNumber = 0;
+ private static String ourDefaultHintText = "To add hint type text here";
public CCCreateAnswerPlaceholderPanel() {
super(new BorderLayout());
myHintTextField.setWrapStyleWord(true);
myHintTextField.setBorder(BorderFactory.createLineBorder(JBColor.border()));
myHintTextField.setFont(myAnswerPlaceholderText.getFont());
+ if (myHints.get(myShownHintNumber).equals(ourDefaultHintText)) {
+ myHintTextField.setForeground(UIUtil.getInactiveTextColor());
+ }
myHintTextField.setText(myHints.get(myShownHintNumber));
+ myHintTextField.addFocusListener(new FocusAdapter() {
+ @Override
+ public void focusGained(FocusEvent e) {
+ if (myHintTextField.getText().equals(ourDefaultHintText)) {
+ myHintTextField.setForeground(UIUtil.getActiveTextColor());
+ myHintTextField.setText("");
+ }
+ }
+ });
+
myAnswerPlaceholderText.grabFocus();
updateHintNumberLabel();
((GridLayoutManager)myHintsPanel.getLayout()).setHGap(1);
final DefaultActionGroup addRemoveGroup = new DefaultActionGroup();
- addRemoveGroup.addAll(new AddHint(), new RemoveHint(), new GoBackward(), new GoForward());
+ addRemoveGroup.addAll(new AddHint(), new RemoveHint(), new GoForward(), new GoBackward());
final JComponent addRemoveComponent = ActionManager.getInstance().createActionToolbar("Hint", addRemoveGroup, false).getComponent();
actionsPanel.add(addRemoveComponent, BorderLayout.WEST);
}
}
public void setHintText(String hintTextField) {
+ myHintTextField.setForeground(UIUtil.getActiveTextColor());
myHintTextField.setText(hintTextField);
}
}
public List<String> getHints() {
- if (myShownHintNumber == 0 && !myHintTextField.getText().isEmpty()) {
- myHints.set(myShownHintNumber, myHintTextField.getText());
+ final String hintText = myHintTextField.getText();
+ if (myShownHintNumber == 0 && hintText.equals(ourDefaultHintText)) {
+ myHints.set(myShownHintNumber, "");
}
+
return myHints;
}
updateHintNumberLabel();
}
- private void createUIComponents() {
- // TODO: place custom component creation code here
- }
-
private class GoForward extends AnAction {
public GoForward() {
@Override
public void actionPerformed(AnActionEvent e) {
myHints.set(myShownHintNumber, myHintTextField.getText());
- myHintTextField.setText(myHints.get(++myShownHintNumber));
+ setHintText(myHints.get(++myShownHintNumber));
updateHintNumberLabel();
}
@Override
public void actionPerformed(AnActionEvent e) {
myHints.set(myShownHintNumber, myHintTextField.getText());
- myHintTextField.setText(myHints.get(--myShownHintNumber));
+ setHintText(myHints.get(--myShownHintNumber));
updateHintNumberLabel();
}
@Override
public void actionPerformed(AnActionEvent e) {
- final String hint = "This is the new hint";
- myHints.add(hint);
- myHintTextField.setText(hint);
+ myHints.add("");
+ setHintText("");
myShownHintNumber++;
updateHintNumberLabel();
}
else {
myShownHintNumber += myShownHintNumber + 1 < myHints.size() ? 1 : -1;
}
- myHintTextField.setText(myHints.get(myShownHintNumber));
+ setHintText(myHints.get(myShownHintNumber));
updateHintNumberLabel();
}