Skip to content

Commit

Permalink
[Feature Redesign]: New design implemented
Browse files Browse the repository at this point in the history
  • Loading branch information
robohorse committed Apr 25, 2020
1 parent 1617741 commit aa34ee8
Show file tree
Hide file tree
Showing 22 changed files with 624 additions and 367 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Expand Up @@ -44,7 +44,7 @@ repositories {
}

group "com.robohorse.robopojogenerator"
version "2.0.0"
version "2.0.1"

intellij {
pluginName "RoboPOJOGenerator"
Expand Down
282 changes: 141 additions & 141 deletions src/main/java/com/robohorse/robopojogenerator/view/GeneratorVew.form

Large diffs are not rendered by default.

Expand Up @@ -14,41 +14,55 @@ public class GeneratorVew {
private JPanel rootView;
private JButton generateButton;
private RSyntaxTextArea textArea;
private JRadioButton NONERadioButton;
private JRadioButton jackson2RadioButton;
private JRadioButton loganSquareRadioButton;
private JRadioButton GSONRadioButton;
private JCheckBox rewriteExistingClassesCheckBox;
private JTextField className;
private JScrollPane scrollView;
private JCheckBox useSettersCheckBox;
private JCheckBox useGettersCheckBox;
private JRadioButton autoValueGsonButton;
private JCheckBox kotlinCheckBox;
private JCheckBox useStringCheckBox;
private JRadioButton fastJSONRadioButton;
private JRadioButton Moshi;
private JScrollPane jsonAreaScrollView;
private JRadioButton JSONRadioButton;
private JRadioButton JSONSchemaRadioButton;
private JRadioButton javaRadioButton;
private JRadioButton kotlinRadioButton;
private JPanel sourcePanel;
private JPanel languagePanel;
private JPanel frameworkPanel;
private JList<String> frameworkList;
private JPanel actionPanel;
private JPanel propertiesPanel;
private JPanel commonInfoPanel;
private JPanel controlsPanel;
private JScrollPane scrollPropertiesPanel;
private ButtonGroup sourceGroup;
private ButtonGroup languageGroup;
private ButtonGroup typeButtonGroup;

public JCheckBox getKotlinCheckBox() {
return kotlinCheckBox;
public JRadioButton getJavaRadioButton() {
return javaRadioButton;
}

public JCheckBox getUseSettersCheckBox() {
return useSettersCheckBox;
public JPanel getSourcePanel() {
return sourcePanel;
}

public JCheckBox getUseGettersCheckBox() {
return useGettersCheckBox;
public JRadioButton getJSONRadioButton() {
return JSONRadioButton;
}

public JRadioButton getJSONSchemaRadioButton() {
return JSONSchemaRadioButton;
}

public JPanel getPropertiesPanel() {
return propertiesPanel;
}

public JRadioButton getKotlinRadioButton() {
return kotlinRadioButton;
}

public JPanel getRootView() {
return rootView;
}

public ButtonGroup getTypeButtonGroup() {
return typeButtonGroup;
public JList<String> getFrameworkList() {
return frameworkList;
}

public JTextField getClassNameTextField() {
Expand All @@ -63,46 +77,25 @@ public JTextArea getTextArea() {
return textArea;
}

public JRadioButton getNONERadioButton() {
return NONERadioButton;
}

public JRadioButton getJackson2RadioButton() {
return jackson2RadioButton;
}

public JRadioButton getLoganSquareRadioButton() {
return loganSquareRadioButton;
}

public JRadioButton getGSONRadioButton() {
return GSONRadioButton;
public JTextField getClassName() {
return className;
}

public JCheckBox getRewriteExistingClassesCheckBox() {
return rewriteExistingClassesCheckBox;
}

public JCheckBox getUseStringCheckBox() {
return useStringCheckBox;
}

private void createUIComponents() {
textArea = new RSyntaxTextArea();
textArea.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JSON);
textArea.setCodeFoldingEnabled(true);
scrollView = new JScrollPane(textArea);
jsonAreaScrollView = new JScrollPane(textArea);
try {
Theme theme = Theme.load(getClass().getResourceAsStream(
final Theme theme = Theme.load(getClass().getResourceAsStream(
"/org/fife/ui/rsyntaxtextarea/themes/monokai.xml"));
theme.apply(textArea);
} catch (IOException ioe) {
ioe.printStackTrace();
}
}


public ButtonGroup getLanguageGroup() {
return languageGroup;
}
}
Expand Up @@ -8,12 +8,12 @@ import com.robohorse.robopojogenerator.delegates.MessageDelegate
import com.robohorse.robopojogenerator.errors.RoboPluginException
import com.robohorse.robopojogenerator.listeners.GuiFormEventListener
import com.robohorse.robopojogenerator.models.GenerationModel
import com.robohorse.robopojogenerator.view.GeneratorViewBinder
import com.robohorse.robopojogenerator.view.GeneratorViewFactory

class GeneratePOJOActionController(
private val environmentDelegate: EnvironmentDelegate,
private val messageDelegate: MessageDelegate,
private val generatorViewBinder: GeneratorViewBinder,
private val generatorViewFactory: GeneratorViewFactory,
private val generationDelegate: GenerationDelegate
) {

Expand All @@ -29,7 +29,7 @@ class GeneratePOJOActionController(
val projectModel = environmentDelegate.obtainProjectModel(event)
val dialogBuilder = DialogBuilder()
val window = dialogBuilder.window
generatorViewBinder.bindView(dialogBuilder, object : GuiFormEventListener {
generatorViewFactory.bindView(dialogBuilder, object : GuiFormEventListener {
override fun onJsonDataObtained(model: GenerationModel) {
window.dispose()
generationDelegate.runGenerationTask(model, projectModel)
Expand Down
17 changes: 16 additions & 1 deletion src/main/kotlin/com/robohorse/robopojogenerator/di/AppModules.kt
Expand Up @@ -18,6 +18,9 @@ import com.robohorse.robopojogenerator.generator.processing.ClassProcessor
import com.robohorse.robopojogenerator.generator.utils.ClassGenerateHelper
import com.robohorse.robopojogenerator.generator.utils.ClassTemplateHelper
import com.robohorse.robopojogenerator.view.GeneratorViewBinder
import com.robohorse.robopojogenerator.view.GeneratorViewFactory
import com.robohorse.robopojogenerator.view.PropertiesFactory
import com.robohorse.robopojogenerator.view.ViewModelMapper
import org.koin.dsl.module

val appModule = module {
Expand All @@ -34,7 +37,19 @@ val appModule = module {
}

single {
GeneratorViewBinder(get(), get())
GeneratorViewFactory(get(), get(), get(), get())
}

single {
ViewModelMapper(get())
}

single {
GeneratorViewBinder(get())
}

single {
PropertiesFactory()
}

single {
Expand Down

This file was deleted.

@@ -1,12 +1,12 @@
package com.robohorse.robopojogenerator.generator.postrocessing

import com.robohorse.robopojogenerator.generator.consts.annotations.AnnotationEnum
import com.robohorse.robopojogenerator.generator.consts.common.ClassItem
import com.robohorse.robopojogenerator.generator.consts.templates.ClassTemplate
import com.robohorse.robopojogenerator.generator.utils.ClassGenerateHelper
import com.robohorse.robopojogenerator.generator.utils.ClassTemplateHelper
import com.robohorse.robopojogenerator.models.GenerationModel
import java.util.HashSet
import com.robohorse.robopojogenerator.view.FrameworkVW
import java.util.*

abstract class BasePostProcessor(
protected val generateHelper: ClassGenerateHelper,
Expand All @@ -21,7 +21,7 @@ abstract class BasePostProcessor(
return proceedClass(classItem, generationModel)
}

abstract fun applyAnnotations(item: AnnotationEnum, classItem: ClassItem)
abstract fun applyAnnotations(item: FrameworkVW, classItem: ClassItem)

abstract fun proceedClassBody(classItem: ClassItem, generationModel: GenerationModel): String?

Expand Down
@@ -1,10 +1,10 @@
package com.robohorse.robopojogenerator.generator.postrocessing

import com.robohorse.robopojogenerator.generator.consts.annotations.AnnotationEnum.AUTO_VALUE_GSON
import com.robohorse.robopojogenerator.generator.postrocessing.common.AutoValueClassPostProcessor
import com.robohorse.robopojogenerator.generator.postrocessing.common.CommonJavaPostProcessor
import com.robohorse.robopojogenerator.generator.postrocessing.common.KotlinDataClassPostProcessor
import com.robohorse.robopojogenerator.models.GenerationModel
import com.robohorse.robopojogenerator.view.FrameworkVW.AutoValue

class PostProcessorFactory(
private val kotlinDataClassPostProcessor: KotlinDataClassPostProcessor,
Expand All @@ -16,7 +16,7 @@ class PostProcessorFactory(
): BasePostProcessor = with(generationModel) {
if (useKotlin) {
kotlinDataClassPostProcessor
} else if (annotationEnum === AUTO_VALUE_GSON) {
} else if (annotationEnum is AutoValue) {
autoValueClassPostProcessor
} else {
commonJavaPostProcessor
Expand Down
@@ -1,60 +1,62 @@
package com.robohorse.robopojogenerator.generator.postrocessing.common

import com.robohorse.robopojogenerator.generator.consts.annotations.AnnotationEnum
import com.robohorse.robopojogenerator.generator.consts.annotations.AnnotationEnum.*
import com.robohorse.robopojogenerator.generator.consts.annotations.PojoAnnotations
import com.robohorse.robopojogenerator.generator.consts.common.ClassItem
import com.robohorse.robopojogenerator.generator.consts.templates.ImportsTemplate
import com.robohorse.robopojogenerator.generator.postrocessing.BasePostProcessor
import com.robohorse.robopojogenerator.generator.utils.ClassGenerateHelper
import com.robohorse.robopojogenerator.generator.utils.ClassTemplateHelper
import com.robohorse.robopojogenerator.view.FrameworkVW
import com.robohorse.robopojogenerator.view.FrameworkVW.*

abstract class JavaPostProcessor(
generateHelper: ClassGenerateHelper,
classTemplateHelper: ClassTemplateHelper
) : BasePostProcessor(generateHelper, classTemplateHelper) {

override fun applyAnnotations(
item: AnnotationEnum,
item: FrameworkVW,
classItem: ClassItem
) {
when (item) {
GSON -> {
is Gson -> {
generateHelper.setAnnotations(classItem,
PojoAnnotations.GSON.classAnnotation,
PojoAnnotations.GSON.annotation,
ImportsTemplate.GSON.imports)
}
LOGAN_SQUARE -> {
is LoganSquare -> {
generateHelper.setAnnotations(classItem,
PojoAnnotations.LOGAN_SQUARE.classAnnotation,
PojoAnnotations.LOGAN_SQUARE.annotation,
ImportsTemplate.LOGAN_SQUARE.imports)
}
JACKSON -> {
is Jackson -> {
generateHelper.setAnnotations(classItem,
PojoAnnotations.JACKSON.classAnnotation,
PojoAnnotations.JACKSON.annotation,
ImportsTemplate.JACKSON.imports)
}
FAST_JSON -> {
is FastJson -> {
generateHelper.setAnnotations(classItem,
PojoAnnotations.FAST_JSON.classAnnotation,
PojoAnnotations.FAST_JSON.annotation,
ImportsTemplate.FAST_JSON.imports)
}
AUTO_VALUE_GSON -> {
is AutoValue -> {
generateHelper.setAnnotations(classItem,
PojoAnnotations.AUTO_VALUE_GSON.classAnnotation,
PojoAnnotations.AUTO_VALUE_GSON.annotation,
ImportsTemplate.AUTO_VALUE_GSON.imports)
}
MOSHI -> {
is Moshi -> {
generateHelper.setAnnotations(classItem,
PojoAnnotations.MOSHI.classAnnotation,
PojoAnnotations.MOSHI.annotation,
ImportsTemplate.MOSHI.imports)
}
is None -> {// NO OP
}
}
}
}
}
@@ -1,6 +1,5 @@
package com.robohorse.robopojogenerator.generator.postrocessing.common

import com.robohorse.robopojogenerator.generator.consts.annotations.AnnotationEnum
import com.robohorse.robopojogenerator.generator.consts.annotations.KotlinAnnotations
import com.robohorse.robopojogenerator.generator.consts.common.ClassItem
import com.robohorse.robopojogenerator.generator.consts.templates.ClassTemplate
Expand All @@ -10,7 +9,9 @@ import com.robohorse.robopojogenerator.generator.utils.ClassGenerateHelper
import com.robohorse.robopojogenerator.generator.utils.ClassTemplateHelper
import com.robohorse.robopojogenerator.models.FieldModel
import com.robohorse.robopojogenerator.models.GenerationModel
import java.util.HashSet
import com.robohorse.robopojogenerator.view.FrameworkVW
import com.robohorse.robopojogenerator.view.FrameworkVW.*
import java.util.*

class KotlinDataClassPostProcessor(
generateHelper: ClassGenerateHelper,
Expand All @@ -20,7 +21,7 @@ class KotlinDataClassPostProcessor(
override fun proceedClassImports(
imports: HashSet<String>
): StringBuilder {
imports.remove(ImportsTemplate.LIST)
imports.remove(ImportsTemplate.LIST)
val importsBuilder = StringBuilder()
for (importItem in imports) {
importsBuilder.append(importItem.replace(";", ""))
Expand Down Expand Up @@ -53,38 +54,41 @@ class KotlinDataClassPostProcessor(
classTemplate)
}

override fun applyAnnotations(item: AnnotationEnum, classItem: ClassItem) {
override fun applyAnnotations(item: FrameworkVW, classItem: ClassItem) {
when (item) {
AnnotationEnum.GSON -> {
is Gson -> {
generateHelper.setAnnotations(classItem,
KotlinAnnotations.GSON.classAnnotation,
KotlinAnnotations.GSON.annotation,
ImportsTemplate.GSON.imports)
}
AnnotationEnum.LOGAN_SQUARE -> {
is LoganSquare -> {
generateHelper.setAnnotations(classItem,
KotlinAnnotations.LOGAN_SQUARE.classAnnotation,
KotlinAnnotations.LOGAN_SQUARE.annotation,
ImportsTemplate.LOGAN_SQUARE.imports)
}
AnnotationEnum.JACKSON -> {
is Jackson -> {
generateHelper.setAnnotations(classItem,
KotlinAnnotations.JACKSON.classAnnotation,
KotlinAnnotations.JACKSON.annotation,
ImportsTemplate.JACKSON.imports)
}
AnnotationEnum.FAST_JSON -> {
is FastJson -> {
generateHelper.setAnnotations(classItem,
KotlinAnnotations.FAST_JSON.classAnnotation,
KotlinAnnotations.FAST_JSON.annotation,
ImportsTemplate.FAST_JSON.imports)
}
AnnotationEnum.MOSHI -> {
is Moshi -> {
generateHelper.setAnnotations(classItem,
KotlinAnnotations.MOSHI.classAnnotation,
KotlinAnnotations.MOSHI.annotation,
ImportsTemplate.MOSHI.imports)
}
else -> {
//NO OP
}
}
}

Expand Down

0 comments on commit aa34ee8

Please sign in to comment.