1 package com
.intellij
.ui
;
3 import com
.intellij
.openapi
.application
.Result
;
4 import com
.intellij
.openapi
.command
.WriteCommandAction
;
5 import com
.intellij
.openapi
.diagnostic
.Logger
;
6 import com
.intellij
.openapi
.editor
.Document
;
7 import com
.intellij
.openapi
.fileTypes
.FileType
;
8 import com
.intellij
.openapi
.fileTypes
.StdFileTypes
;
9 import com
.intellij
.openapi
.project
.Project
;
10 import com
.intellij
.openapi
.ui
.ComboBox
;
11 import com
.intellij
.openapi
.util
.Key
;
12 import com
.intellij
.psi
.PsiDocumentManager
;
13 import com
.intellij
.psi
.PsiFile
;
14 import com
.intellij
.psi
.PsiFileFactory
;
19 * ComboBox with Editor and Strings as item
22 public class StringComboboxEditor
extends EditorComboBoxEditor
{
23 public static final Key
<JComboBox
> COMBO_BOX_KEY
= Key
.create("COMBO_BOX_KEY");
25 private static final Logger LOG
= Logger
.getInstance("#com.intellij.ui.StringComboboxEditor");
26 private final Project myProject
;
28 public StringComboboxEditor(final Project project
, final FileType fileType
, ComboBox comboBox
) {
29 super(project
, fileType
);
31 final PsiFile file
= PsiFileFactory
.getInstance(project
).createFileFromText("a.dummy", StdFileTypes
.PLAIN_TEXT
, "", 0, true);
32 final Document document
= PsiDocumentManager
.getInstance(project
).getDocument(file
);
33 assert document
!= null;
34 document
.putUserData(COMBO_BOX_KEY
, comboBox
);
35 super.setItem(document
);
38 public Object
getItem() {
39 final String text
= ((Document
) super.getItem()).getText();
40 LOG
.assertTrue(text
!= null);
44 public void setItem(Object anObject
) {
45 if (anObject
== null) anObject
= "";
46 if (anObject
.equals(getItem())) return;
47 final String s
= (String
)anObject
;
48 new WriteCommandAction(myProject
) {
49 protected void run(Result result
) throws Throwable
{
50 getDocument().setText(s
);