in android/src/org/jetbrains/android/uipreview/DeviceConfiguratorPanel.java [119:256]
public DeviceConfiguratorPanel() {
super(new BorderLayout());
createUIComponents();
myChosenQualifiersConfig.reset();
for (ResourceQualifier qualifier : myAvailableQualifiersConfig.getQualifiers()) {
final String name = qualifier.getShortName();
if (qualifier instanceof CountryCodeQualifier) {
myEditors.put(name, new MyCountryCodeEditor());
}
else if (qualifier instanceof NetworkCodeQualifier) {
myEditors.put(name, new MyNetworkCodeEditor());
}
else if (qualifier instanceof KeyboardStateQualifier) {
myEditors.put(name, new MyKeyboardStateEditor());
}
else if (qualifier instanceof NavigationMethodQualifier) {
myEditors.put(name, new MyNavigationMethodEditor());
}
else if (qualifier instanceof NavigationStateQualifier) {
myEditors.put(name, new MyNavigationStateEditor());
}
else if (qualifier instanceof DensityQualifier) {
myEditors.put(name, new MyDensityEditor());
}
else if (qualifier instanceof ScreenDimensionQualifier) {
myEditors.put(name, new MyScreenDimensionEditor());
}
else if (qualifier instanceof ScreenOrientationQualifier) {
myEditors.put(name, new MyScreenOrientationEditor());
}
else if (qualifier instanceof ScreenRatioQualifier) {
myEditors.put(name, new MyScreenRatioEditor());
}
else if (qualifier instanceof ScreenSizeQualifier) {
myEditors.put(name, new MyScreenSizeEditor());
}
else if (qualifier instanceof TextInputMethodQualifier) {
myEditors.put(name, new MyTextInputMethodEditor());
}
else if (qualifier instanceof TouchScreenQualifier) {
myEditors.put(name, new MyTouchScreenEditor());
}
else if (qualifier instanceof VersionQualifier) {
myEditors.put(name, new MyVersionEditor());
}
else if (qualifier instanceof NightModeQualifier) {
myEditors.put(name, new MyNightModeEditor());
}
else if (qualifier instanceof UiModeQualifier) {
myEditors.put(name, new MyUiModeEditor());
}
else if (qualifier instanceof LocaleQualifier) {
myEditors.put(name, new MyLocaleEditor());
}
else if (qualifier instanceof SmallestScreenWidthQualifier) {
myEditors.put(name, new MySmallestScreenWidthEditor());
}
else if (qualifier instanceof ScreenWidthQualifier) {
myEditors.put(name, new MyScreenWidthEditor());
}
else if (qualifier instanceof ScreenHeightQualifier) {
myEditors.put(name, new MyScreenHeightEditor());
}
else if (qualifier instanceof LayoutDirectionQualifier) {
myEditors.put(name, new MyLayoutDirectionEditor());
}
else if (qualifier instanceof ScreenRoundQualifier) {
myEditors.put(name, new MyScreenRoundEditor());
} else {
LOG.info("Missing editor for qualifier " + qualifier);
}
}
for (String name : myEditors.keySet()) {
myQualifierOptionsPanel.add(myEditors.get(name).getComponent(), name);
}
myAvailableQualifiersList.setCellRenderer(SimpleListCellRenderer.create((label, value, index) -> {
if (value == null) return;
label.setText(value.getShortName());
label.setIcon(getResourceIcon(value));
}));
myChosenQualifiersList.setCellRenderer(SimpleListCellRenderer.create((label, value, index) -> {
if (value == null) return;
ResourceQualifier qualifier = getActualQualifier(value);
String shortDisplayValue = qualifier.getShortDisplayValue();
label.setText(shortDisplayValue != null && !shortDisplayValue.isEmpty() ?
shortDisplayValue : qualifier.getShortName() + " (?)");
label.setIcon(getResourceIcon(qualifier));
}));
myAddQualifierButton.addActionListener(e -> {
final ResourceQualifier selectedQualifier = myAvailableQualifiersList.getSelectedValue();
if (selectedQualifier == null) {
return;
}
final int index = myAvailableQualifiersList.getSelectedIndex();
myAvailableQualifiersConfig.removeQualifier(selectedQualifier);
myChosenQualifiersConfig.addQualifier(selectedQualifier);
updateLists();
applyEditors();
if (index >= 0) {
myAvailableQualifiersList.setSelectedIndex(Math.min(index, myAvailableQualifiersList.getItemsCount() - 1));
}
myChosenQualifiersList.setSelectedValue(selectedQualifier, true);
});
myRemoveQualifierButton.addActionListener(e -> {
final ResourceQualifier selectedQualifier = myChosenQualifiersList.getSelectedValue();
if (selectedQualifier == null) {
return;
}
final int index = myChosenQualifiersList.getSelectedIndex();
myChosenQualifiersConfig.removeQualifier(selectedQualifier);
myAvailableQualifiersConfig.addQualifier(selectedQualifier);
updateLists();
applyEditors();
if (index >= 0) {
myChosenQualifiersList.setSelectedIndex(Math.min(index, myChosenQualifiersList.getItemsCount() - 1));
}
});
myAvailableQualifiersList.addListSelectionListener(e -> updateButtons());
myChosenQualifiersList.addListSelectionListener(e -> {
updateButtons();
updateQualifierEditor();
});
}