view com.redhat.thermostat.tools.eclipse.plugin/src/com/redhat/thermostat/tools/eclipse/plugin/editor/Converters.java @ 107:4dfa549ca00c

Add UI for editing arguments
author Omair Majid <omajid@redhat.com>
date Fri, 21 Feb 2014 15:59:02 -0500
parents
children 6369d2282c1d
line wrap: on
line source

package com.redhat.thermostat.tools.eclipse.plugin.editor;

import java.util.Arrays;
import java.util.List;

import org.eclipse.core.databinding.conversion.Converter;

public class Converters {

    public static class ListToStringConverter extends Converter {

        public ListToStringConverter() {
            super(List.class, String.class);
        }

        @Override
        public Object convert(Object fromObject) {
            if (!(fromObject instanceof List)) {
                throw new AssertionError("Only List objects can be converted");
            }
            List<String> list = (List<String>) fromObject;

            if (list.size() == 0) {
                return "";
            }

            StringBuilder result = new StringBuilder();
            for (String item : list) {
                result.append(item).append(" ");
            }
            // return everything except the last " "
            return result.substring(0, result.length() - 1);
        }
    }

    public static class StringToListConverter extends Converter {

        public StringToListConverter() {
            super(String.class, List.class);
        }

        @Override
        public Object convert(Object fromObject) {
            if (!(fromObject instanceof String)) {
                throw new AssertionError("Only string objects can be converted");
            }
            String from = (String) fromObject;
            String[] parts = from.trim().split(" +");
            List<String> result = Arrays.asList(parts);
            return result;
        }

    }

}