- if device template has manufacturer, that will have upper priority than other templates
- add sorting routine using integer, double value to table column
Change-Id: I4405b962a834585c6c1aa696bae4927d1d5caa2d
Signed-off-by: jihye424.kim <jihye424.kim@samsung.com>
private boolean isSortPlatformList = false;
private int priority = 10;
+ private boolean isSortTemplateList = false;
+
public Profile(String name) {
this.name = name;
initLastCreatedPropertyPath();
this.priority = priority;
}
+ public void sortTemplateList() {
+ TemplatePair[] pairs = new TemplatePair[templateList.size()];
+ for (int i = 0; i < templateList.size(); i++) {
+ pairs[i] = new TemplatePair(templateList.get(i));
+ }
+
+ Arrays.sort(pairs);
+
+ for (int i = 0; i < templateList.size(); i++) {
+ templateList.set(i, pairs[i].template);
+ }
+ }
+
public void clearTemplateList() {
+ isSortTemplateList = false;
templateList.clear();
}
public List<DeviceTemplate> getTemplateList() {
+ if (!isSortTemplateList) {
+ sortTemplateList();
+ isSortTemplateList = true;
+ }
return templateList;
}
}
}
};
+
+ static class TemplatePair implements Comparable<Object> {
+ DeviceTemplate template;
+
+ public TemplatePair(DeviceTemplate template) {
+ this.template = template;
+ }
+
+ @Override
+ public int compareTo(Object o) {
+ DeviceTemplate src = this.template;
+ DeviceTemplate target = ((TemplatePair)o).template;
+
+ // check standard
+ if (target.getValue().getType().equals("standard")) {
+ if (!src.getValue().getType().equals("standard")) {
+ return 1;
+ }
+ } else { // target is custom template
+ if (src.getValue().getType().equals("standard")) {
+ return -1;
+ }
+ }
+
+ // check manufacturer
+ if (target.getValue().getManufacturer() != null
+ && !target.getValue().getManufacturer().isEmpty()) {
+ if (src.getValue().getManufacturer() == null
+ || src.getValue().getManufacturer().isEmpty()) {
+ return 1;
+ }
+ }
+
+ return -1;
+ }
+ };
}
for (Profile profile : profileList) {
if (profile.getName().equals(template.getValue().getProfile())) {
profile.addDeviceTemplate(template);
+ break;
}
}
}
import org.tizen.emulator.manager.ui.table.Table;
import org.tizen.emulator.manager.ui.table.TableColumn;
import org.tizen.emulator.manager.ui.table.TableItem;
+import org.tizen.emulator.manager.vms.SKIN_SHAPE;
public class DeviceTemplateTableViewer extends AbstractTableViewer {
private static final int BACK_BUTTON_WIDTH = 124;
table.getColumn(1).addListener(SWT.Selection, table.getDefaultSortListener());
table.getColumn(2).addListener(SWT.Selection, table.getDefaultSortListener());
- table.getColumn(3).addListener(SWT.Selection, table.getDefaultSortListener());
- table.getColumn(4).addListener(SWT.Selection, table.getDefaultSortListener());
table.getColumn(5).addListener(SWT.Selection, table.getDefaultSortListener());
+ settingSortingPair();
+ }
+
+ private void settingSortingPair() {
+ table.getColumn(3).addListener(SWT.Selection, new Listener() {
+
+ @Override
+ public void handleEvent(Event event) {
+ TableColumn column = (TableColumn)event.widget;
+ // set column
+ table.settingSortColumn(column);
+ // make comparable item list
+ int dir = table.getSortDirection();
+ DoubleTypeItemPair[] pairs = new DoubleTypeItemPair[table.getItemCount()];
+ for (int i = 0; i < table.getItemCount(); i++) {
+ DeviceTemplate t = (DeviceTemplate)table.getItem(i).getData();
+ pairs[i] = new DoubleTypeItemPair(table.getItem(i), 1, dir,
+ t.getValue().getDisplaySize());
+ }
+ column.setTableItemPairs(pairs);
+ // sort table item
+ table.defaultSortTableItem(column);
+ }
+
+ });
+
+ table.getColumn(4).addListener(SWT.Selection, new Listener() {
+
+ @Override
+ public void handleEvent(Event event) {
+ TableColumn column = (TableColumn)event.widget;
+ // set column
+ table.settingSortColumn(column);
+ // make comparable item list
+ int dir = table.getSortDirection();
+ IntegerTypeItemPair[] pairs = new IntegerTypeItemPair[table.getItemCount()];
+ for (int i = 0; i < table.getItemCount(); i++) {
+ DeviceTemplate t = (DeviceTemplate)table.getItem(i).getData();
+ pairs[i] = new IntegerTypeItemPair(table.getItem(i), 1, dir,
+ t.getValue().getRamSize());
+ }
+ column.setTableItemPairs(pairs);
+ // sort table item
+ table.defaultSortTableItem(column);
+ }
+
+ });
+
table.getColumn(0).addListener(SWT.Selection, new Listener() {
@Override
table.settingSortColumn(column);
// make comparable item list
int dir = table.getSortDirection();
- ItemProfilePair[] pairs = new ItemProfilePair[table.getItemCount()];
+ IntegerTypeItemPair[] pairs = new IntegerTypeItemPair[table.getItemCount()];
for (int i = 0; i < table.getItemCount(); i++) {
DeviceTemplate t = (DeviceTemplate)table.getItem(i).getData();
Profile p = ProfileList.getProfile(t.getValue().getProfile());
if (!t.getValue().isStandard()) {
priority += 1;
}
- pairs[i] = new ItemProfilePair(table.getItem(i), 1, dir, priority);
+ pairs[i] = new IntegerTypeItemPair(table.getItem(i), 1, dir, priority);
}
column.setTableItemPairs(pairs);
// sort table item
}
});
-
}
private void setTemplateListTable() {
+ "Type: " + value.getType();
item.setToolTipText(0, info);
item.setToolTipText(1, info);
- item.setToolTipText(3, "DPI: " + value.getDisplayDPI());
+ item.setToolTipText(3, "DPI: " + value.getDisplayDPI()
+ + (value.getSkinShape() != SKIN_SHAPE.SQUARE
+ ? StringResources.NEW_LINE + "Skin Shape: " + value.getSkinShape().toString()
+ : ""));
}
private void setTableItemMenu(TableItem item, DeviceTemplate template) {
--- /dev/null
+/*
+ * Emulator Manager
+ *
+ * Copyright (C) 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact:
+ * JiHye Kim <jihye424.kim@samsung.com>
+ * Minkee Lee <minkee.lee@samsung.com>
+ * SeokYeon Hwang <syeon.hwang@samsung.com>
+ * Sangho Park <sangho.p@samsung.com>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributors:
+ * - S-Core Co., Ltd
+ */
+
+package org.tizen.emulator.manager.ui.renewal.tableviewer;
+
+import org.eclipse.swt.SWT;
+import org.tizen.emulator.manager.ui.table.TableItem;
+import org.tizen.emulator.manager.ui.table.TableItemComparable;
+
+public class DoubleTypeItemPair extends TableItemComparable {
+ private double value;
+ public DoubleTypeItemPair(TableItem item, int index, int direction, double value) {
+ super(item, index, direction);
+ this.value = value;
+ }
+
+ @Override
+ public int compareTo(Object o) {
+ double targetValue = ((DoubleTypeItemPair)o).value;
+
+ if (direction == SWT.UP) {
+ return value > targetValue ? -1 : 1;
+ } else {
+ return value < targetValue ? -1 : 1;
+ }
+ }
+
+}
import org.tizen.emulator.manager.ui.table.TableItem;
import org.tizen.emulator.manager.ui.table.TableItemComparable;
-public class ItemProfilePair extends TableItemComparable {
+public class IntegerTypeItemPair extends TableItemComparable {
private int priority;
- public ItemProfilePair(TableItem item, int index, int direction, int priority) {
+ public IntegerTypeItemPair(TableItem item, int index, int direction, int priority) {
super(item, index, direction);
this.priority = priority;
}
@Override
public int compareTo(Object o) {
- int targetPriority = ((ItemProfilePair)o).priority;
+ int targetPriority = ((IntegerTypeItemPair)o).priority;
if (direction == SWT.UP) {
return priority > targetPriority ? -1 : 1;
table.settingSortColumn(column);
// make item compareable list
int dir = table.getSortDirection();
- ItemProfilePair[] pairs = new ItemProfilePair[table.getItemCount()];
+ IntegerTypeItemPair[] pairs = new IntegerTypeItemPair[table.getItemCount()];
for (int i = 0; i < table.getItemCount(); i++) {
Profile profile = ((VMProperty)table.getItem(i).getData()).getPropertyValue().baseImage.getPlatform().getProfileClass();
- pairs[i] = new ItemProfilePair(table.getItem(i), 1, dir, profile.getPriority());
+ pairs[i] = new IntegerTypeItemPair(table.getItem(i), 1, dir, profile.getPriority());
}
column.setTableItemPairs(pairs);
// sort table item