Compare commits

...

1 Commits

Author SHA1 Message Date
hwang-talend
75319887e1 Hwang/tup 26870 (#3214)
* bugfix(TUP-26870):Incorrect sorting order
2020-04-23 14:11:22 +08:00
3 changed files with 136 additions and 2 deletions

View File

@@ -13,6 +13,8 @@
package org.talend.core.repository.ui.dialog;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -30,12 +32,14 @@ import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
import org.talend.commons.exception.PersistenceException;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.model.properties.Item;
import org.talend.core.model.properties.ProcessItem;
import org.talend.core.model.properties.Property;
import org.talend.core.model.repository.IRepositoryObject;
import org.talend.core.model.repository.IRepositoryViewObject;
import org.talend.core.repository.utils.RepositoryNodeSortUtil;
import org.talend.core.ui.ITestContainerProviderService;
import org.talend.repository.model.RepositoryNode;
import org.talend.repository.model.IRepositoryNode.EProperties;
@@ -107,7 +111,8 @@ public class PastSelectorDialog extends Dialog {
modificationTime.setWidth(200);
modificationTime.setText("Modification Time");
for (IRepositoryViewObject object : versions) {
RepositoryNodeSortUtil util = new RepositoryNodeSortUtil();
for (IRepositoryViewObject object : util.getSortVersion(versions)) {
TableItem item = new TableItem(table, SWT.NONE);
item.setData(object);
item.setText(0, object.getVersion());
@@ -187,7 +192,7 @@ public class PastSelectorDialog extends Dialog {
});
return composite;
}
public Set<IRepositoryViewObject> getSelectedVersionItems() {
return this.selectedVersionItems;
}

View File

@@ -0,0 +1,47 @@
// ============================================================================
//
// Copyright (C) 2006-2019 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.core.repository.utils;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import org.talend.commons.utils.Version;
import org.talend.core.model.repository.IRepositoryViewObject;
/**
* @author hwang
*
*/
public class RepositoryNodeSortUtil {
public List<IRepositoryViewObject> getSortVersion(List<IRepositoryViewObject> versions) {
List<IRepositoryViewObject> temp = new ArrayList<IRepositoryViewObject>();
temp.addAll(versions);
Collections.sort(temp, new Comparator<IRepositoryViewObject>() {
@Override
public int compare(IRepositoryViewObject o1, IRepositoryViewObject o2) {
String version1 = o1.getVersion();
String version2 = o2.getVersion();
if(version1 != null && version2 != null) {
return new Version(version1).compareTo(new Version(version2));
}
return 0;
}
});
return temp;
}
}

View File

@@ -0,0 +1,82 @@
// ============================================================================
//
// Copyright (C) 2006-2019 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.repository.utils;
import static org.junit.Assert.assertTrue;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import org.talend.core.model.properties.ItemState;
import org.talend.core.model.properties.ProcessItem;
import org.talend.core.model.properties.PropertiesFactory;
import org.talend.core.model.properties.Property;
import org.talend.core.model.repository.IRepositoryViewObject;
import org.talend.core.model.repository.RepositoryViewObject;
import org.talend.core.repository.utils.RepositoryNodeSortUtil;
/**
* @author hwang
*
*/
public class RepositoryNodeSortUtilTest {
@Test
public void testGetSortVersion() {
Property property1 = PropertiesFactory.eINSTANCE.createProperty();
property1.setId("property1"); //$NON-NLS-1$
property1.setVersion("2.9"); //$NON-NLS-1$
property1.setLabel("test1");//$NON-NLS-1$
ProcessItem item1 = PropertiesFactory.eINSTANCE.createProcessItem();
ItemState state = PropertiesFactory.eINSTANCE.createItemState();
state.setDeleted(false);
item1.setState(state);
property1.setItem(item1);
IRepositoryViewObject object1 = new RepositoryViewObject(property1, true);
property1 = PropertiesFactory.eINSTANCE.createProperty();
property1.setId("property1"); //$NON-NLS-1$
property1.setVersion("0.3"); //$NON-NLS-1$
property1.setLabel("test1");//$NON-NLS-1$
item1 = PropertiesFactory.eINSTANCE.createProcessItem();
state = PropertiesFactory.eINSTANCE.createItemState();
state.setDeleted(false);
item1.setState(state);
property1.setItem(item1);
IRepositoryViewObject object2 = new RepositoryViewObject(property1, true);
property1 = PropertiesFactory.eINSTANCE.createProperty();
property1.setId("property1"); //$NON-NLS-1$
property1.setVersion("2.11"); //$NON-NLS-1$
property1.setLabel("test1");//$NON-NLS-1$
item1 = PropertiesFactory.eINSTANCE.createProcessItem();
state = PropertiesFactory.eINSTANCE.createItemState();
state.setDeleted(false);
item1.setState(state);
property1.setItem(item1);
IRepositoryViewObject object3 = new RepositoryViewObject(property1, true);
List<IRepositoryViewObject> temp = new ArrayList<IRepositoryViewObject>();
RepositoryNodeSortUtil util = new RepositoryNodeSortUtil();
temp = new ArrayList<IRepositoryViewObject>();
temp.add(object3);
temp.add(object2);
temp.add(object1);
List<IRepositoryViewObject> result = util.getSortVersion(temp);
assertTrue("0.3".equals(result.get(0).getVersion()));
assertTrue("2.9".equals(result.get(1).getVersion()));
assertTrue("2.11".equals(result.get(2).getVersion()));
}
}