From 975d13f36f45411648d4cf2ed3d0f4dda56ba59b Mon Sep 17 00:00:00 2001 From: OMGeeky <> Date: Mon, 16 Jun 2025 08:31:22 +0200 Subject: [PATCH] extract wordWrap function to common class --- .../dialoguetree/DialogueGraphView.java | 19 ++--------------- .../ui/tools/CommonEditor.java | 21 +++++++++++++++++++ .../ui/tools/writermode/WriterModeEditor.java | 21 +++---------------- 3 files changed, 26 insertions(+), 35 deletions(-) create mode 100644 src/com/gpl/rpg/atcontentstudio/ui/tools/CommonEditor.java diff --git a/src/com/gpl/rpg/atcontentstudio/ui/gamedataeditors/dialoguetree/DialogueGraphView.java b/src/com/gpl/rpg/atcontentstudio/ui/gamedataeditors/dialoguetree/DialogueGraphView.java index d091d8b..51e3ced 100644 --- a/src/com/gpl/rpg/atcontentstudio/ui/gamedataeditors/dialoguetree/DialogueGraphView.java +++ b/src/com/gpl/rpg/atcontentstudio/ui/gamedataeditors/dialoguetree/DialogueGraphView.java @@ -18,6 +18,7 @@ import javax.swing.JToolTip; import javax.swing.SwingConstants; import javax.swing.ToolTipManager; +import com.gpl.rpg.atcontentstudio.ui.tools.CommonEditor; import prefuse.Display; import prefuse.Visualization; import prefuse.action.ActionList; @@ -321,23 +322,7 @@ public class DialogueGraphView extends Display { @Override protected String getText(VisualItem item) { - return wordWrap(super.getText(item), 40); - } - - public String wordWrap(String in, int length) { - final String newline = "\n"; - //:: Trim - while(in.length() > 0 && (in.charAt(0) == '\t' || in.charAt(0) == ' ')) in = in.substring(1); - //:: If Small Enough Already, Return Original - if(in.length() < length) return in; - //:: If Next length Contains Newline, Split There - if(in.substring(0, length).contains(newline)) return in.substring(0, in.indexOf(newline)).trim() + newline + wordWrap(in.substring(in.indexOf("\n") + 1), length); - //:: Otherwise, Split Along Nearest Previous Space/Tab/Dash - int spaceIndex = Math.max(Math.max( in.lastIndexOf(" ", length), in.lastIndexOf("\t", length)), in.lastIndexOf("-", length)); - //:: If No Nearest Space, Split At length - if(spaceIndex == -1) spaceIndex = length; - //:: Split - return in.substring(0, spaceIndex).trim() + newline + wordWrap(in.substring(spaceIndex), length); + return CommonEditor.wordWrap(super.getText(item), 40); } } diff --git a/src/com/gpl/rpg/atcontentstudio/ui/tools/CommonEditor.java b/src/com/gpl/rpg/atcontentstudio/ui/tools/CommonEditor.java new file mode 100644 index 0000000..32c8df3 --- /dev/null +++ b/src/com/gpl/rpg/atcontentstudio/ui/tools/CommonEditor.java @@ -0,0 +1,21 @@ +package com.gpl.rpg.atcontentstudio.ui.tools; + +public final class CommonEditor { + + public static String wordWrap(String in, int length) { + if (in == null) return null; + final String newline = "\n"; + //:: Trim + while(!in.isEmpty() && (in.charAt(0) == '\t' || in.charAt(0) == ' ')) in = in.substring(1); + //:: If Small Enough Already, Return Original + if(in.length() < length) return in; + //:: If Next length Contains Newline, Split There + if(in.substring(0, length).contains(newline)) return in.substring(0, in.indexOf(newline)).trim() + newline + wordWrap(in.substring(in.indexOf("\n") + 1), length); + //:: Otherwise, Split Along Nearest Previous Space/Tab/Dash + int spaceIndex = Math.max(Math.max( in.lastIndexOf(" ", length), in.lastIndexOf("\t", length)), in.lastIndexOf("-", length)); + //:: If No Nearest Space, Split At length + if(spaceIndex == -1) spaceIndex = length; + //:: Split + return in.substring(0, spaceIndex).trim() + newline + wordWrap(in.substring(spaceIndex), length); + } +} diff --git a/src/com/gpl/rpg/atcontentstudio/ui/tools/writermode/WriterModeEditor.java b/src/com/gpl/rpg/atcontentstudio/ui/tools/writermode/WriterModeEditor.java index 47509d1..0a776ad 100644 --- a/src/com/gpl/rpg/atcontentstudio/ui/tools/writermode/WriterModeEditor.java +++ b/src/com/gpl/rpg/atcontentstudio/ui/tools/writermode/WriterModeEditor.java @@ -27,6 +27,7 @@ import javax.swing.JTextArea; import javax.swing.KeyStroke; import javax.swing.plaf.basic.BasicInternalFrameUI; +import com.gpl.rpg.atcontentstudio.ui.tools.CommonEditor; import prefuse.Display; import prefuse.Visualization; import prefuse.action.Action; @@ -415,25 +416,9 @@ public class WriterModeEditor extends Editor { @Override protected String getText(VisualItem item) { if (!item.getBoolean(IS_REPLY) && super.getText(item) == null) return "[Selector]"; - return wordWrap(super.getText(item), 40); - } - - public String wordWrap(String in, int length) { - if (in == null) return null; - final String newline = "\n"; - //:: Trim - while(in.length() > 0 && (in.charAt(0) == '\t' || in.charAt(0) == ' ')) in = in.substring(1); - //:: If Small Enough Already, Return Original - if(in.length() < length) return in; - //:: If Next length Contains Newline, Split There - if(in.substring(0, length).contains(newline)) return in.substring(0, in.indexOf(newline)).trim() + newline + wordWrap(in.substring(in.indexOf("\n") + 1), length); - //:: Otherwise, Split Along Nearest Previous Space/Tab/Dash - int spaceIndex = Math.max(Math.max( in.lastIndexOf(" ", length), in.lastIndexOf("\t", length)), in.lastIndexOf("-", length)); - //:: If No Nearest Space, Split At length - if(spaceIndex == -1) spaceIndex = length; - //:: Split - return in.substring(0, spaceIndex).trim() + newline + wordWrap(in.substring(spaceIndex), length); + return CommonEditor.wordWrap(super.getText(item), 40); } + } class NodeStrokeColorAction extends ColorAction {