Skip to content

Commit 3ac497e

Browse files
committed
Add select all options
1 parent 786c6b6 commit 3ac497e

File tree

5 files changed

+111
-37
lines changed

5 files changed

+111
-37
lines changed

src/action/ConvertAction.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import com.intellij.openapi.ui.Messages;
2525
import com.intellij.openapi.vfs.VirtualFile;
2626
import com.intellij.psi.PsiFile;
27-
import logic.LanguageHelper;
2827
import module.AndroidString;
2928
import org.jetbrains.annotations.NotNull;
3029
import task.GetAndroidStringTask;
@@ -119,7 +118,6 @@ private boolean isTranslatable(@NotNull List<AndroidString> list) {
119118

120119
@Override
121120
public void onClickListener(List<LANG> selectedLanguage) {
122-
LanguageHelper.saveSelectedLanguage(mProject, selectedLanguage);
123121
TranslateTask translationTask = new TranslateTask(
124122
mProject, "In translation...", selectedLanguage, mAndroidStrings, mSelectFile);
125123
translationTask.setOnTranslateListener(new TranslateTask.OnTranslateListener() {

src/config/PluginConfig.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@
1818

1919
import com.intellij.ide.util.PropertiesComponent;
2020

21+
import static constant.Constants.PLUGIN_ID;
22+
2123
/**
2224
* @author airsaid
2325
*/
2426
public final class PluginConfig {
2527

26-
private static final String PLUGIN_ID = "com.airsaid.androidLocalize";
27-
2828
private static final String KEY_ENABLE_PROXY = PLUGIN_ID.concat(".enableProxy");
2929

3030
private static final String KEY_HOST_NAME = PLUGIN_ID.concat(".hostName");

src/constant/Constants.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,6 @@ public interface Constants {
2929

3030
String KEY_IS_OVERWRITE_EXISTING_STRING = PLUGIN_ID.concat(".is_overwrite_existing_string");
3131

32+
String KEY_IS_SELECT_ALL = PLUGIN_ID.concat(".is_select_all");
33+
3234
}

src/ui/SelectLanguageDialog.form

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="ui.SelectLanguageDialog">
3+
<grid id="27dc6" binding="myPanel" layout-manager="GridLayoutManager" row-count="2" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
4+
<margin top="10" left="10" bottom="10" right="10"/>
5+
<constraints>
6+
<xy x="20" y="20" width="500" height="400"/>
7+
</constraints>
8+
<properties/>
9+
<border type="none">
10+
<font/>
11+
</border>
12+
<children>
13+
<grid id="b408a" layout-manager="GridLayoutManager" row-count="1" column-count="3" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
14+
<margin top="0" left="0" bottom="0" right="0"/>
15+
<constraints>
16+
<grid row="0" column="0" row-span="1" col-span="2" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
17+
</constraints>
18+
<properties/>
19+
<border type="none" title="Options"/>
20+
<children>
21+
<component id="945c1" class="javax.swing.JCheckBox" binding="overwriteExistingStringCheckBox" default-binding="true">
22+
<constraints>
23+
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
24+
</constraints>
25+
<properties>
26+
<text value="Overwrite Existing String"/>
27+
</properties>
28+
</component>
29+
<component id="5a842" class="javax.swing.JCheckBox" binding="selectAllCheckBox" default-binding="true">
30+
<constraints>
31+
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
32+
</constraints>
33+
<properties>
34+
<text value="Select All"/>
35+
</properties>
36+
</component>
37+
<hspacer id="8551c">
38+
<constraints>
39+
<grid row="0" column="2" row-span="1" col-span="1" vsize-policy="1" hsize-policy="6" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
40+
</constraints>
41+
</hspacer>
42+
</children>
43+
</grid>
44+
<grid id="74eec" binding="languagesPanel" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
45+
<margin top="0" left="0" bottom="0" right="0"/>
46+
<constraints>
47+
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
48+
</constraints>
49+
<properties/>
50+
<border type="none" title="Languages"/>
51+
<children/>
52+
</grid>
53+
</children>
54+
</grid>
55+
</form>

src/ui/SelectLanguageDialog.java

Lines changed: 52 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,14 @@
4040
* @author airsaid
4141
*/
4242
public class SelectLanguageDialog extends DialogWrapper {
43+
private JPanel myPanel;
44+
private JCheckBox overwriteExistingStringCheckBox;
45+
private JCheckBox selectAllCheckBox;
46+
private JPanel languagesPanel;
4347

44-
private Project mProject;
48+
private Project mProject;
4549
private OnClickListener mOnClickListener;
46-
private List<LANG> mSelectLanguages = new ArrayList<>();
50+
private List<LANG> mSelectLanguages = new ArrayList<>();
4751

4852
public interface OnClickListener {
4953
void onClickListener(List<LANG> selectedLanguage);
@@ -52,56 +56,36 @@ public interface OnClickListener {
5256
public SelectLanguageDialog(@Nullable Project project) {
5357
super(project, false);
5458
this.mProject = project;
59+
doCreateCenterPanel();
5560
setTitle("Select Convert Languages");
5661
setResizable(true);
5762
init();
5863
}
5964

60-
@Override
61-
protected void doOKAction() {
62-
if (mSelectLanguages.size() <= 0) {
63-
Messages.showErrorDialog("Please select the language you need to translate!", "Error");
64-
return;
65-
}
66-
if (mOnClickListener != null) {
67-
mOnClickListener.onClickListener(mSelectLanguages);
68-
}
69-
super.doOKAction();
65+
public void setOnClickListener(OnClickListener listener) {
66+
mOnClickListener = listener;
7067
}
7168

7269
@Nullable
7370
@Override
7471
protected JComponent createCenterPanel() {
75-
return doCreateCenterPanel();
72+
return myPanel;
7673
}
7774

78-
private JComponent doCreateCenterPanel() {
79-
final JPanel panel = new JPanel(new BorderLayout(16, 6));
80-
final Container container = new Container();
81-
// add overwrite existing string
82-
final JBCheckBox overwriteExistingString = new JBCheckBox("Overwrite Existing String");
83-
panel.add(overwriteExistingString, BorderLayout.NORTH);
84-
overwriteExistingString.addItemListener(e -> {
85-
int state = e.getStateChange();
86-
PropertiesComponent.getInstance(mProject)
87-
.setValue(Constants.KEY_IS_OVERWRITE_EXISTING_STRING, state == ItemEvent.SELECTED);
88-
});
89-
boolean isOverwriteExistingString = PropertiesComponent.getInstance(mProject)
90-
.getBoolean(Constants.KEY_IS_OVERWRITE_EXISTING_STRING);
91-
overwriteExistingString.setSelected(isOverwriteExistingString);
75+
private void doCreateCenterPanel() {
9276
// add language
9377
mSelectLanguages.clear();
9478
List<LANG> supportLanguages = new GoogleTranslator().getSupportLang();
9579
List<String> selectedLanguageCodes = LanguageHelper.getSelectedLanguageCodes(mProject);
9680
// sort by country code, easy to find
9781
supportLanguages.sort(new CountryCodeComparator());
98-
container.setLayout(new GridLayout(supportLanguages.size() / 4, 4));
82+
languagesPanel.setLayout(new GridLayout(supportLanguages.size() / 4, 4));
9983
for (LANG language : supportLanguages) {
10084
String code = language.getCode();
10185
JBCheckBox checkBoxLanguage = new JBCheckBox();
10286
checkBoxLanguage.setText(language.getEnglishName()
10387
.concat("(").concat(code).concat(")"));
104-
container.add(checkBoxLanguage);
88+
languagesPanel.add(checkBoxLanguage);
10589
checkBoxLanguage.addItemListener(e -> {
10690
int state = e.getStateChange();
10791
if (state == ItemEvent.SELECTED) {
@@ -114,12 +98,47 @@ private JComponent doCreateCenterPanel() {
11498
checkBoxLanguage.setSelected(true);
11599
}
116100
}
117-
panel.add(container, BorderLayout.CENTER);
118-
return panel;
101+
102+
boolean isOverwriteExistingString = PropertiesComponent.getInstance(mProject)
103+
.getBoolean(Constants.KEY_IS_OVERWRITE_EXISTING_STRING);
104+
overwriteExistingStringCheckBox.setSelected(isOverwriteExistingString);
105+
overwriteExistingStringCheckBox.addItemListener(e -> {
106+
int state = e.getStateChange();
107+
PropertiesComponent.getInstance(mProject)
108+
.setValue(Constants.KEY_IS_OVERWRITE_EXISTING_STRING, state == ItemEvent.SELECTED);
109+
});
110+
111+
boolean isSelectAll = PropertiesComponent.getInstance(mProject)
112+
.getBoolean(Constants.KEY_IS_SELECT_ALL);
113+
selectAllCheckBox.setSelected(isSelectAll);
114+
selectAllCheckBox.addItemListener(e -> {
115+
int state = e.getStateChange();
116+
selectAll(state == ItemEvent.SELECTED);
117+
PropertiesComponent.getInstance(mProject)
118+
.setValue(Constants.KEY_IS_SELECT_ALL, state == ItemEvent.SELECTED);
119+
});
119120
}
120121

121-
public void setOnClickListener(OnClickListener listener) {
122-
mOnClickListener = listener;
122+
private void selectAll(boolean selectAll) {
123+
for (Component component : languagesPanel.getComponents()) {
124+
if (component instanceof JBCheckBox) {
125+
JBCheckBox checkBox = (JBCheckBox) component;
126+
checkBox.setSelected(selectAll);
127+
}
128+
}
129+
}
130+
131+
@Override
132+
protected void doOKAction() {
133+
LanguageHelper.saveSelectedLanguage(mProject, mSelectLanguages);
134+
if (mSelectLanguages.size() <= 0) {
135+
Messages.showErrorDialog("Please select the language you need to translate!", "Error");
136+
return;
137+
}
138+
if (mOnClickListener != null) {
139+
mOnClickListener.onClickListener(mSelectLanguages);
140+
}
141+
super.doOKAction();
123142
}
124143

125144
class CountryCodeComparator implements Comparator<LANG> {

0 commit comments

Comments
 (0)