Change Tab to Group

pull/146/head
johnniang 2019-04-10 11:58:40 +08:00
parent e84025e9e3
commit 901a6a0456
5 changed files with 35 additions and 35 deletions

View File

@ -5,13 +5,13 @@ import lombok.Data;
import java.util.List;
/**
* Theme configuration: Tab entity.
* Theme configuration: group entity.
*
* @author johnniang
* @date 4/10/19
*/
@Data
public class Tab {
public class Group {
/**
* Tab name.

View File

@ -7,7 +7,7 @@ import run.halo.app.model.enums.InputType;
import java.util.List;
/**
* Theme configuration: Item entity
* Theme configuration: item entity
*
* @author johnniang
* @date 4/10/19

View File

@ -14,12 +14,12 @@ import java.util.List;
public interface ThemeConfigResolver {
/**
* Resolves content as tab.
* Resolves content as group list.
*
* @param content content must not be blank
* @return a list of tab
* @return a list of group
* @throws IOException throws when content conversion fails
*/
@NonNull
List<Tab> resolve(@NonNull String content) throws IOException;
List<Group> resolve(@NonNull String content) throws IOException;
}

View File

@ -4,9 +4,9 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
import org.springframework.lang.Nullable;
import org.springframework.stereotype.Component;
import run.halo.app.handler.theme.Group;
import run.halo.app.handler.theme.Item;
import run.halo.app.handler.theme.Option;
import run.halo.app.handler.theme.Tab;
import run.halo.app.handler.theme.ThemeConfigResolver;
import run.halo.app.model.enums.DataType;
import run.halo.app.model.enums.InputType;
@ -29,13 +29,13 @@ public class YamlThemeConfigResolverImpl implements ThemeConfigResolver {
private final ObjectMapper yamlMapper = new ObjectMapper(new YAMLFactory());
@Override
public List<Tab> resolve(String content) throws IOException {
public List<Group> resolve(String content) throws IOException {
return handleTabs(yamlMapper.readValue(content, Object.class));
}
@SuppressWarnings("unchecked")
private List<Tab> handleTabs(@Nullable Object config) {
List<Tab> tabs = new LinkedList<>();
private List<Group> handleTabs(@Nullable Object config) {
List<Group> groups = new LinkedList<>();
if (config instanceof List) {
List configList = (List) config;
@ -49,15 +49,15 @@ public class YamlThemeConfigResolverImpl implements ThemeConfigResolver {
Map tabMap = ((Map) tabYaml);
Tab tab = new Tab();
Group group = new Group();
tab.setName(tabMap.get("name").toString());
tab.setLabel(tabMap.get("label").toString());
group.setName(tabMap.get("name").toString());
group.setLabel(tabMap.get("label").toString());
// Handle items
tab.setItems(handleItems(tabMap.get("items")));
group.setItems(handleItems(tabMap.get("items")));
tabs.add(tab);
groups.add(group);
});
} else if (config instanceof Map) {
@ -71,19 +71,19 @@ public class YamlThemeConfigResolverImpl implements ThemeConfigResolver {
Map tabMap = (Map) value;
Tab tab = new Tab();
Group group = new Group();
tab.setName(key.toString());
tab.setLabel(tabMap.get("label").toString());
group.setName(key.toString());
group.setLabel(tabMap.get("label").toString());
// Handle items
tab.setItems(handleItems(tabMap.get("items")));
group.setItems(handleItems(tabMap.get("items")));
tabs.add(tab);
groups.add(group);
});
}
return tabs;
return groups;
}
@SuppressWarnings("unchecked")

View File

@ -1,7 +1,7 @@
package run.halo.app.utils;
import org.junit.Test;
import run.halo.app.handler.theme.Tab;
import run.halo.app.handler.theme.Group;
import run.halo.app.handler.theme.impl.YamlThemeConfigResolverImpl;
import java.io.IOException;
@ -62,11 +62,11 @@ public class YamlTest {
" - value: false\n" +
" label: 关闭";
List<Tab> tabs = resolver.resolve(yaml);
List<Group> groups = resolver.resolve(yaml);
assertThat(tabs.size(), equalTo(2));
assertThat(tabs.get(0).getItems().size(), equalTo(3));
assertThat(tabs.get(1).getItems().size(), equalTo(2));
assertThat(groups.size(), equalTo(2));
assertThat(groups.get(0).getItems().size(), equalTo(3));
assertThat(groups.get(1).getItems().size(), equalTo(2));
}
@Test
@ -119,11 +119,11 @@ public class YamlTest {
" label: 关闭\n";
List<Tab> tabs = resolver.resolve(yaml);
List<Group> groups = resolver.resolve(yaml);
assertThat(tabs.size(), equalTo(2));
assertThat(tabs.get(0).getItems().size(), equalTo(4));
assertThat(tabs.get(1).getItems().size(), equalTo(3));
assertThat(groups.size(), equalTo(2));
assertThat(groups.get(0).getItems().size(), equalTo(4));
assertThat(groups.get(1).getItems().size(), equalTo(3));
}
@Test
@ -174,12 +174,12 @@ public class YamlTest {
" - value: false\n" +
" label: 关闭";
List<Tab> tabs = resolver.resolve(yaml);
List<Group> groups = resolver.resolve(yaml);
assertThat(tabs.size(), equalTo(2));
assertThat(tabs.get(0).getItems().size(), equalTo(4));
assertThat(tabs.get(1).getItems().size(), equalTo(3));
assertThat(tabs.get(0).getItems().get(0).getOptions().size(), equalTo(2));
assertThat(groups.size(), equalTo(2));
assertThat(groups.get(0).getItems().size(), equalTo(4));
assertThat(groups.get(1).getItems().size(), equalTo(3));
assertThat(groups.get(0).getItems().get(0).getOptions().size(), equalTo(2));
}
}