├── .idea ├── .gitignore ├── .name ├── misc.xml ├── modules.xml ├── runConfigurations.xml └── uiDesigner.xml ├── Editor.iml ├── LICENSE ├── README.md ├── out └── production │ ├── Editor │ ├── Doc │ │ ├── EditorPackage │ │ │ ├── Editor.html │ │ │ ├── EditorController.html │ │ │ ├── EditorModel.html │ │ │ ├── editor.fxml │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ └── package-tree.html │ │ ├── allclasses-frame.html │ │ ├── allclasses-noframe.html │ │ ├── constant-values.html │ │ ├── deprecated-list.html │ │ ├── help-doc.html │ │ ├── index-all.html │ │ ├── index.html │ │ ├── overview-tree.html │ │ ├── package-list │ │ ├── script.js │ │ └── stylesheet.css │ └── EditorPackage │ │ ├── Editor$1.class │ │ ├── Editor$2.class │ │ ├── Editor.class │ │ ├── EditorController.class │ │ ├── EditorModel.class │ │ └── editor.fxml │ └── untitled │ ├── Doc │ ├── EditorPackage │ │ ├── Editor.html │ │ ├── EditorController.html │ │ ├── EditorModel.html │ │ ├── editor.fxml │ │ ├── package-frame.html │ │ ├── package-summary.html │ │ └── package-tree.html │ ├── allclasses-frame.html │ ├── allclasses-noframe.html │ ├── constant-values.html │ ├── deprecated-list.html │ ├── help-doc.html │ ├── index-all.html │ ├── index.html │ ├── overview-tree.html │ ├── package-list │ ├── script.js │ └── stylesheet.css │ └── EditorPackage │ ├── Editor$1.class │ ├── Editor$2.class │ ├── Editor.class │ ├── EditorController.class │ ├── EditorModel.class │ └── editor.fxml └── src ├── Doc ├── EditorPackage │ ├── Editor.html │ ├── EditorController.html │ ├── EditorModel.html │ ├── editor.fxml │ ├── package-frame.html │ ├── package-summary.html │ └── package-tree.html ├── allclasses-frame.html ├── allclasses-noframe.html ├── constant-values.html ├── deprecated-list.html ├── help-doc.html ├── index-all.html ├── index.html ├── overview-tree.html ├── package-list ├── script.js └── stylesheet.css └── EditorPackage ├── Editor.java ├── EditorController.java ├── EditorModel.java └── editor.fxml /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | # Datasource local storage ignored files 5 | /../../../../../../:\Users\moel\Desktop\untitled\.idea/dataSources/ 6 | /dataSources.local.xml 7 | # Editor-based HTTP Client requests 8 | /httpRequests/ 9 | -------------------------------------------------------------------------------- /.idea/.name: -------------------------------------------------------------------------------- 1 | EditorController.java -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/uiDesigner.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | -------------------------------------------------------------------------------- /Editor.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Moel 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # simple-htmleditor 2 | Simple Html and Text Editor 3 | 4 | This is a simple html and text editor made by java and javafx 5 | -------------------------------------------------------------------------------- /out/production/Editor/Doc/EditorPackage/EditorModel.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | EditorModel 7 | 8 | 9 | 10 | 11 | 12 | 28 | 31 | 32 |
33 | 34 | 35 |
Skip navigation links
36 | 37 | 38 | 39 | 47 |
48 | 90 | 91 | 92 |
93 |
EditorPackage
94 |

Class EditorModel

95 |
96 |
97 | 105 |
106 | 115 |
116 |
117 | 179 |
180 |
181 | 256 |
257 |
258 | 259 | 260 |
261 | 262 | 263 |
Skip navigation links
264 | 265 | 266 | 267 | 275 |
276 | 318 | 319 | 320 | 321 | -------------------------------------------------------------------------------- /out/production/Editor/Doc/EditorPackage/editor.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 |
42 | 43 | 46 | 47 |
48 |
49 | -------------------------------------------------------------------------------- /out/production/Editor/Doc/EditorPackage/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | EditorPackage 7 | 8 | 9 | 10 | 11 | 12 |

EditorPackage

13 |
14 |

Classes

15 | 20 |
21 | 22 | 23 | -------------------------------------------------------------------------------- /out/production/Editor/Doc/EditorPackage/package-summary.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | EditorPackage 7 | 8 | 9 | 10 | 11 | 12 | 22 | 25 | 26 |
27 | 28 | 29 |
Skip navigation links
30 | 31 | 32 | 33 | 41 |
42 | 69 | 70 |
71 |

Package EditorPackage

72 |
73 |
74 | 105 |
106 | 107 |
108 | 109 | 110 |
Skip navigation links
111 | 112 | 113 | 114 | 122 |
123 | 150 | 151 | 152 | 153 | -------------------------------------------------------------------------------- /out/production/Editor/Doc/EditorPackage/package-tree.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | EditorPackage Class Hierarchy 7 | 8 | 9 | 10 | 11 | 12 | 22 | 25 | 26 |
27 | 28 | 29 |
Skip navigation links
30 | 31 | 32 | 33 | 41 |
42 | 69 | 70 |
71 |

Hierarchy For Package EditorPackage

72 |
73 |
74 |

Class Hierarchy

75 | 88 |
89 | 90 |
91 | 92 | 93 |
Skip navigation links
94 | 95 | 96 | 97 | 105 |
106 | 133 | 134 | 135 | 136 | -------------------------------------------------------------------------------- /out/production/Editor/Doc/allclasses-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes 7 | 8 | 9 | 10 | 11 | 12 |

All Classes

13 |
14 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /out/production/Editor/Doc/allclasses-noframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes 7 | 8 | 9 | 10 | 11 | 12 |

All Classes

13 |
14 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /out/production/Editor/Doc/constant-values.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Constant Field Values 7 | 8 | 9 | 10 | 11 | 12 | 22 | 25 | 26 |
27 | 28 | 29 |
Skip navigation links
30 | 31 | 32 | 33 | 41 |
42 | 69 | 70 |
71 |

Constant Field Values

72 |

Contents

73 |
74 | 75 |
76 | 77 | 78 |
Skip navigation links
79 | 80 | 81 | 82 | 90 |
91 | 118 | 119 | 120 | 121 | -------------------------------------------------------------------------------- /out/production/Editor/Doc/deprecated-list.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Deprecated List 7 | 8 | 9 | 10 | 11 | 12 | 22 | 25 | 26 |
27 | 28 | 29 |
Skip navigation links
30 | 31 | 32 | 33 | 41 |
42 | 69 | 70 |
71 |

Deprecated API

72 |

Contents

73 |
74 | 75 |
76 | 77 | 78 |
Skip navigation links
79 | 80 | 81 | 82 | 90 |
91 | 118 | 119 | 120 | 121 | -------------------------------------------------------------------------------- /out/production/Editor/Doc/help-doc.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | API Help 7 | 8 | 9 | 10 | 11 | 12 | 22 | 25 | 26 |
27 | 28 | 29 |
Skip navigation links
30 | 31 | 32 | 33 | 41 |
42 | 69 | 70 |
71 |

How This API Document Is Organized

72 |
This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.
73 |
74 |
75 | 170 | This help file applies to API documentation generated using the standard doclet.
171 | 172 |
173 | 174 | 175 |
Skip navigation links
176 | 177 | 178 | 179 | 187 |
188 | 215 | 216 | 217 | 218 | -------------------------------------------------------------------------------- /out/production/Editor/Doc/index-all.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Index 7 | 8 | 9 | 10 | 11 | 12 | 22 | 25 | 26 |
27 | 28 | 29 |
Skip navigation links
30 | 31 | 32 | 33 | 41 |
42 | 69 | 70 |
E H L M O S  71 | 72 | 73 |

E

74 |
75 |
Editor - Class in EditorPackage
76 |
77 |
This Class is used for Generating View based on FxmlFile FxmlFile
78 |
79 |
Editor() - Constructor for class EditorPackage.Editor
80 |
 
81 |
EditorController - Class in EditorPackage
82 |
83 |
This is a Controller Class For FxmlFile FxmlFile
84 |
85 |
EditorController(EditorModel) - Constructor for class EditorPackage.EditorController
86 |
 
87 |
EditorModel - Class in EditorPackage
88 |
89 |
This Class is Model Class For EditorApplication
90 |
91 |
EditorModel() - Constructor for class EditorPackage.EditorModel
92 |
 
93 |
EditorPackage - package EditorPackage
94 |
 
95 |
96 | 97 | 98 | 99 |

H

100 |
101 |
htmlEditor - Variable in class EditorPackage.EditorController
102 |
 
103 |
104 | 105 | 106 | 107 |

L

108 |
109 |
Load(File) - Method in class EditorPackage.EditorModel
110 |
111 |
This Method Loads Content Of The File And Then Converts Content of The File To Proper Format
112 |
113 |
114 | 115 | 116 | 117 |

M

118 |
119 |
main(String[]) - Static method in class EditorPackage.Editor
120 |
 
121 |
122 | 123 | 124 | 125 |

O

126 |
127 |
onKeyPressed() - Method in class EditorPackage.EditorController
128 |
129 |
This Method Saves any Key Strokes in StackUndo
130 |
131 |
onLoad() - Method in class EditorPackage.EditorController
132 |
133 |
This Method Invokes When Button Load Is Clicked 134 | For Loading Files With Different Extensions
135 |
136 |
onNewTab() - Method in class EditorPackage.EditorController
137 |
138 |
When Button New Tab Is Clicked 139 | For Creating New Instance Of Controller And Model Class
140 |
141 |
onRedo() - Method in class EditorPackage.EditorController
142 |
143 |
This Method Invokes When Button Redo Is Clicked 144 | To Perform Redo Action
145 |
146 |
onSave() - Method in class EditorPackage.EditorController
147 |
148 |
This Method Invokes When Button Save Is Clicked 149 | For Saving Editor Content As *.html
150 |
151 |
onSaveAs() - Method in class EditorPackage.EditorController
152 |
153 |
This Method Invokes When Button SaveAs Is Clicked 154 | For Saving Editor Content Either As *.html Or *.txt
155 |
156 |
onUndo() - Method in class EditorPackage.EditorController
157 |
158 |
This Method Invokes When Button Undo Is Clicked 159 | To Perform Undo Action
160 |
161 |
162 | 163 | 164 | 165 |

S

166 |
167 |
Save(File, String) - Method in class EditorPackage.EditorModel
168 |
169 |
This Method Saves Content In The Editor In The Specified File
170 |
171 |
Save(String) - Method in class EditorPackage.EditorModel
172 |
173 |
This Method Saves Content In The Editor In The Same File That Already Been Saved
174 |
175 |
scene - Static variable in class EditorPackage.Editor
176 |
 
177 |
start(Stage) - Method in class EditorPackage.Editor
178 |
 
179 |
180 | E H L M O S 
181 | 182 |
183 | 184 | 185 |
Skip navigation links
186 | 187 | 188 | 189 | 197 |
198 | 225 | 226 | 227 | 228 | -------------------------------------------------------------------------------- /out/production/Editor/Doc/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Generated Documentation (Untitled) 7 | 60 | 61 | 62 | 63 | 64 | 65 | <noscript> 66 | <div>JavaScript is disabled on your browser.</div> 67 | </noscript> 68 | <h2>Frame Alert</h2> 69 | <p>This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. Link to <a href="EditorPackage/package-summary.html">Non-frame version</a>.</p> 70 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /out/production/Editor/Doc/overview-tree.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Class Hierarchy 7 | 8 | 9 | 10 | 11 | 12 | 22 | 25 | 26 |
27 | 28 | 29 |
Skip navigation links
30 | 31 | 32 | 33 | 41 |
42 | 69 | 70 |
71 |

Hierarchy For All Packages

72 | Package Hierarchies: 73 | 76 |
77 |
78 |

Class Hierarchy

79 | 92 |
93 | 94 |
95 | 96 | 97 |
Skip navigation links
98 | 99 | 100 | 101 | 109 |
110 | 137 | 138 | 139 | 140 | -------------------------------------------------------------------------------- /out/production/Editor/Doc/package-list: -------------------------------------------------------------------------------- 1 | EditorPackage 2 | -------------------------------------------------------------------------------- /out/production/Editor/Doc/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /out/production/Editor/EditorPackage/Editor$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldcorvus/simple-html-editor/6ecdecb88fdf7c8706bf6f551baaf15e98b331e2/out/production/Editor/EditorPackage/Editor$1.class -------------------------------------------------------------------------------- /out/production/Editor/EditorPackage/Editor$2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldcorvus/simple-html-editor/6ecdecb88fdf7c8706bf6f551baaf15e98b331e2/out/production/Editor/EditorPackage/Editor$2.class -------------------------------------------------------------------------------- /out/production/Editor/EditorPackage/Editor.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldcorvus/simple-html-editor/6ecdecb88fdf7c8706bf6f551baaf15e98b331e2/out/production/Editor/EditorPackage/Editor.class -------------------------------------------------------------------------------- /out/production/Editor/EditorPackage/EditorController.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldcorvus/simple-html-editor/6ecdecb88fdf7c8706bf6f551baaf15e98b331e2/out/production/Editor/EditorPackage/EditorController.class -------------------------------------------------------------------------------- /out/production/Editor/EditorPackage/EditorModel.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldcorvus/simple-html-editor/6ecdecb88fdf7c8706bf6f551baaf15e98b331e2/out/production/Editor/EditorPackage/EditorModel.class -------------------------------------------------------------------------------- /out/production/Editor/EditorPackage/editor.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 |
41 | 42 | 45 | 46 |
47 |
48 | -------------------------------------------------------------------------------- /out/production/untitled/Doc/EditorPackage/editor.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 |
42 | 43 | 46 | 47 |
48 |
49 | -------------------------------------------------------------------------------- /out/production/untitled/Doc/EditorPackage/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | EditorPackage 7 | 8 | 9 | 10 | 11 | 12 |

EditorPackage

13 |
14 |

Classes

15 | 20 |
21 | 22 | 23 | -------------------------------------------------------------------------------- /out/production/untitled/Doc/EditorPackage/package-summary.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | EditorPackage 7 | 8 | 9 | 10 | 11 | 12 | 22 | 25 | 26 |
27 | 28 | 29 |
Skip navigation links
30 | 31 | 32 | 33 | 41 |
42 | 69 | 70 |
71 |

Package EditorPackage

72 |
73 |
74 | 105 |
106 | 107 |
108 | 109 | 110 |
Skip navigation links
111 | 112 | 113 | 114 | 122 |
123 | 150 | 151 | 152 | 153 | -------------------------------------------------------------------------------- /out/production/untitled/Doc/EditorPackage/package-tree.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | EditorPackage Class Hierarchy 7 | 8 | 9 | 10 | 11 | 12 | 22 | 25 | 26 |
27 | 28 | 29 |
Skip navigation links
30 | 31 | 32 | 33 | 41 |
42 | 69 | 70 |
71 |

Hierarchy For Package EditorPackage

72 |
73 |
74 |

Class Hierarchy

75 | 88 |
89 | 90 |
91 | 92 | 93 |
Skip navigation links
94 | 95 | 96 | 97 | 105 |
106 | 133 | 134 | 135 | 136 | -------------------------------------------------------------------------------- /out/production/untitled/Doc/allclasses-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes 7 | 8 | 9 | 10 | 11 | 12 |

All Classes

13 |
14 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /out/production/untitled/Doc/allclasses-noframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes 7 | 8 | 9 | 10 | 11 | 12 |

All Classes

13 |
14 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /out/production/untitled/Doc/constant-values.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Constant Field Values 7 | 8 | 9 | 10 | 11 | 12 | 22 | 25 | 26 |
27 | 28 | 29 |
Skip navigation links
30 | 31 | 32 | 33 | 41 |
42 | 69 | 70 |
71 |

Constant Field Values

72 |

Contents

73 |
74 | 75 |
76 | 77 | 78 |
Skip navigation links
79 | 80 | 81 | 82 | 90 |
91 | 118 | 119 | 120 | 121 | -------------------------------------------------------------------------------- /out/production/untitled/Doc/deprecated-list.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Deprecated List 7 | 8 | 9 | 10 | 11 | 12 | 22 | 25 | 26 |
27 | 28 | 29 |
Skip navigation links
30 | 31 | 32 | 33 | 41 |
42 | 69 | 70 |
71 |

Deprecated API

72 |

Contents

73 |
74 | 75 |
76 | 77 | 78 |
Skip navigation links
79 | 80 | 81 | 82 | 90 |
91 | 118 | 119 | 120 | 121 | -------------------------------------------------------------------------------- /out/production/untitled/Doc/help-doc.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | API Help 7 | 8 | 9 | 10 | 11 | 12 | 22 | 25 | 26 |
27 | 28 | 29 |
Skip navigation links
30 | 31 | 32 | 33 | 41 |
42 | 69 | 70 |
71 |

How This API Document Is Organized

72 |
This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.
73 |
74 |
75 | 170 | This help file applies to API documentation generated using the standard doclet.
171 | 172 |
173 | 174 | 175 |
Skip navigation links
176 | 177 | 178 | 179 | 187 |
188 | 215 | 216 | 217 | 218 | -------------------------------------------------------------------------------- /out/production/untitled/Doc/index-all.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Index 7 | 8 | 9 | 10 | 11 | 12 | 22 | 25 | 26 |
27 | 28 | 29 |
Skip navigation links
30 | 31 | 32 | 33 | 41 |
42 | 69 | 70 |
E H L M O S  71 | 72 | 73 |

E

74 |
75 |
Editor - Class in EditorPackage
76 |
77 |
This Class is used for Generating View based on FxmlFile FxmlFile
78 |
79 |
Editor() - Constructor for class EditorPackage.Editor
80 |
 
81 |
EditorController - Class in EditorPackage
82 |
83 |
This is a Controller Class For FxmlFile FxmlFile
84 |
85 |
EditorController(EditorModel) - Constructor for class EditorPackage.EditorController
86 |
 
87 |
EditorModel - Class in EditorPackage
88 |
89 |
This Class is Model Class For EditorApplication
90 |
91 |
EditorModel() - Constructor for class EditorPackage.EditorModel
92 |
 
93 |
EditorPackage - package EditorPackage
94 |
 
95 |
96 | 97 | 98 | 99 |

H

100 |
101 |
htmlEditor - Variable in class EditorPackage.EditorController
102 |
 
103 |
104 | 105 | 106 | 107 |

L

108 |
109 |
Load(File) - Method in class EditorPackage.EditorModel
110 |
111 |
This Method Loads Content Of The File And Then Converts Content of The File To Proper Format
112 |
113 |
114 | 115 | 116 | 117 |

M

118 |
119 |
main(String[]) - Static method in class EditorPackage.Editor
120 |
 
121 |
122 | 123 | 124 | 125 |

O

126 |
127 |
onKeyPressed() - Method in class EditorPackage.EditorController
128 |
129 |
This Method Saves any Key Strokes in StackUndo
130 |
131 |
onLoad() - Method in class EditorPackage.EditorController
132 |
133 |
This Method Invokes When Button Load Is Clicked 134 | For Loading Files With Different Extensions
135 |
136 |
onNewTab() - Method in class EditorPackage.EditorController
137 |
138 |
When Button New Tab Is Clicked 139 | For Creating New Instance Of Controller And Model Class
140 |
141 |
onRedo() - Method in class EditorPackage.EditorController
142 |
143 |
This Method Invokes When Button Redo Is Clicked 144 | To Perform Redo Action
145 |
146 |
onSave() - Method in class EditorPackage.EditorController
147 |
148 |
This Method Invokes When Button Save Is Clicked 149 | For Saving Editor Content As *.html
150 |
151 |
onSaveAs() - Method in class EditorPackage.EditorController
152 |
153 |
This Method Invokes When Button SaveAs Is Clicked 154 | For Saving Editor Content Either As *.html Or *.txt
155 |
156 |
onUndo() - Method in class EditorPackage.EditorController
157 |
158 |
This Method Invokes When Button Undo Is Clicked 159 | To Perform Undo Action
160 |
161 |
162 | 163 | 164 | 165 |

S

166 |
167 |
Save(File, String) - Method in class EditorPackage.EditorModel
168 |
169 |
This Method Saves Content In The Editor In The Specified File
170 |
171 |
Save(String) - Method in class EditorPackage.EditorModel
172 |
173 |
This Method Saves Content In The Editor In The Same File That Already Been Saved
174 |
175 |
scene - Static variable in class EditorPackage.Editor
176 |
 
177 |
start(Stage) - Method in class EditorPackage.Editor
178 |
 
179 |
180 | E H L M O S 
181 | 182 |
183 | 184 | 185 |
Skip navigation links
186 | 187 | 188 | 189 | 197 |
198 | 225 | 226 | 227 | 228 | -------------------------------------------------------------------------------- /out/production/untitled/Doc/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Generated Documentation (Untitled) 7 | 60 | 61 | 62 | 63 | 64 | 65 | <noscript> 66 | <div>JavaScript is disabled on your browser.</div> 67 | </noscript> 68 | <h2>Frame Alert</h2> 69 | <p>This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. Link to <a href="EditorPackage/package-summary.html">Non-frame version</a>.</p> 70 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /out/production/untitled/Doc/overview-tree.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Class Hierarchy 7 | 8 | 9 | 10 | 11 | 12 | 22 | 25 | 26 |
27 | 28 | 29 |
Skip navigation links
30 | 31 | 32 | 33 | 41 |
42 | 69 | 70 |
71 |

Hierarchy For All Packages

72 | Package Hierarchies: 73 | 76 |
77 |
78 |

Class Hierarchy

79 | 92 |
93 | 94 |
95 | 96 | 97 |
Skip navigation links
98 | 99 | 100 | 101 | 109 |
110 | 137 | 138 | 139 | 140 | -------------------------------------------------------------------------------- /out/production/untitled/Doc/package-list: -------------------------------------------------------------------------------- 1 | EditorPackage 2 | -------------------------------------------------------------------------------- /out/production/untitled/Doc/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /out/production/untitled/EditorPackage/Editor$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldcorvus/simple-html-editor/6ecdecb88fdf7c8706bf6f551baaf15e98b331e2/out/production/untitled/EditorPackage/Editor$1.class -------------------------------------------------------------------------------- /out/production/untitled/EditorPackage/Editor$2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldcorvus/simple-html-editor/6ecdecb88fdf7c8706bf6f551baaf15e98b331e2/out/production/untitled/EditorPackage/Editor$2.class -------------------------------------------------------------------------------- /out/production/untitled/EditorPackage/Editor.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldcorvus/simple-html-editor/6ecdecb88fdf7c8706bf6f551baaf15e98b331e2/out/production/untitled/EditorPackage/Editor.class -------------------------------------------------------------------------------- /out/production/untitled/EditorPackage/EditorController.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldcorvus/simple-html-editor/6ecdecb88fdf7c8706bf6f551baaf15e98b331e2/out/production/untitled/EditorPackage/EditorController.class -------------------------------------------------------------------------------- /out/production/untitled/EditorPackage/EditorModel.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldcorvus/simple-html-editor/6ecdecb88fdf7c8706bf6f551baaf15e98b331e2/out/production/untitled/EditorPackage/EditorModel.class -------------------------------------------------------------------------------- /out/production/untitled/EditorPackage/editor.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 |
41 | 42 | 45 | 46 |
47 |
48 | -------------------------------------------------------------------------------- /src/Doc/EditorPackage/EditorModel.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | EditorModel 7 | 8 | 9 | 10 | 11 | 12 | 28 | 31 | 32 |
33 | 34 | 35 |
Skip navigation links
36 | 37 | 38 | 39 | 47 |
48 | 90 | 91 | 92 |
93 |
EditorPackage
94 |

Class EditorModel

95 |
96 |
97 | 105 |
106 | 115 |
116 |
117 | 179 |
180 |
181 | 256 |
257 |
258 | 259 | 260 |
261 | 262 | 263 |
Skip navigation links
264 | 265 | 266 | 267 | 275 |
276 | 318 | 319 | 320 | 321 | -------------------------------------------------------------------------------- /src/Doc/EditorPackage/editor.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 |
42 | 43 | 46 | 47 |
48 |
49 | -------------------------------------------------------------------------------- /src/Doc/EditorPackage/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | EditorPackage 7 | 8 | 9 | 10 | 11 | 12 |

EditorPackage

13 |
14 |

Classes

15 | 20 |
21 | 22 | 23 | -------------------------------------------------------------------------------- /src/Doc/EditorPackage/package-summary.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | EditorPackage 7 | 8 | 9 | 10 | 11 | 12 | 22 | 25 | 26 |
27 | 28 | 29 |
Skip navigation links
30 | 31 | 32 | 33 | 41 |
42 | 69 | 70 |
71 |

Package EditorPackage

72 |
73 |
74 | 105 |
106 | 107 |
108 | 109 | 110 |
Skip navigation links
111 | 112 | 113 | 114 | 122 |
123 | 150 | 151 | 152 | 153 | -------------------------------------------------------------------------------- /src/Doc/EditorPackage/package-tree.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | EditorPackage Class Hierarchy 7 | 8 | 9 | 10 | 11 | 12 | 22 | 25 | 26 |
27 | 28 | 29 |
Skip navigation links
30 | 31 | 32 | 33 | 41 |
42 | 69 | 70 |
71 |

Hierarchy For Package EditorPackage

72 |
73 |
74 |

Class Hierarchy

75 | 88 |
89 | 90 |
91 | 92 | 93 |
Skip navigation links
94 | 95 | 96 | 97 | 105 |
106 | 133 | 134 | 135 | 136 | -------------------------------------------------------------------------------- /src/Doc/allclasses-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes 7 | 8 | 9 | 10 | 11 | 12 |

All Classes

13 |
14 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /src/Doc/allclasses-noframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes 7 | 8 | 9 | 10 | 11 | 12 |

All Classes

13 |
14 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /src/Doc/constant-values.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Constant Field Values 7 | 8 | 9 | 10 | 11 | 12 | 22 | 25 | 26 |
27 | 28 | 29 |
Skip navigation links
30 | 31 | 32 | 33 | 41 |
42 | 69 | 70 |
71 |

Constant Field Values

72 |

Contents

73 |
74 | 75 |
76 | 77 | 78 |
Skip navigation links
79 | 80 | 81 | 82 | 90 |
91 | 118 | 119 | 120 | 121 | -------------------------------------------------------------------------------- /src/Doc/deprecated-list.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Deprecated List 7 | 8 | 9 | 10 | 11 | 12 | 22 | 25 | 26 |
27 | 28 | 29 |
Skip navigation links
30 | 31 | 32 | 33 | 41 |
42 | 69 | 70 |
71 |

Deprecated API

72 |

Contents

73 |
74 | 75 |
76 | 77 | 78 |
Skip navigation links
79 | 80 | 81 | 82 | 90 |
91 | 118 | 119 | 120 | 121 | -------------------------------------------------------------------------------- /src/Doc/help-doc.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | API Help 7 | 8 | 9 | 10 | 11 | 12 | 22 | 25 | 26 |
27 | 28 | 29 |
Skip navigation links
30 | 31 | 32 | 33 | 41 |
42 | 69 | 70 |
71 |

How This API Document Is Organized

72 |
This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.
73 |
74 |
75 | 170 | This help file applies to API documentation generated using the standard doclet.
171 | 172 |
173 | 174 | 175 |
Skip navigation links
176 | 177 | 178 | 179 | 187 |
188 | 215 | 216 | 217 | 218 | -------------------------------------------------------------------------------- /src/Doc/index-all.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Index 7 | 8 | 9 | 10 | 11 | 12 | 22 | 25 | 26 |
27 | 28 | 29 |
Skip navigation links
30 | 31 | 32 | 33 | 41 |
42 | 69 | 70 |
E H L M O S  71 | 72 | 73 |

E

74 |
75 |
Editor - Class in EditorPackage
76 |
77 |
This Class is used for Generating View based on FxmlFile FxmlFile
78 |
79 |
Editor() - Constructor for class EditorPackage.Editor
80 |
 
81 |
EditorController - Class in EditorPackage
82 |
83 |
This is a Controller Class For FxmlFile FxmlFile
84 |
85 |
EditorController(EditorModel) - Constructor for class EditorPackage.EditorController
86 |
 
87 |
EditorModel - Class in EditorPackage
88 |
89 |
This Class is Model Class For EditorApplication
90 |
91 |
EditorModel() - Constructor for class EditorPackage.EditorModel
92 |
 
93 |
EditorPackage - package EditorPackage
94 |
 
95 |
96 | 97 | 98 | 99 |

H

100 |
101 |
htmlEditor - Variable in class EditorPackage.EditorController
102 |
 
103 |
104 | 105 | 106 | 107 |

L

108 |
109 |
Load(File) - Method in class EditorPackage.EditorModel
110 |
111 |
This Method Loads Content Of The File And Then Converts Content of The File To Proper Format
112 |
113 |
114 | 115 | 116 | 117 |

M

118 |
119 |
main(String[]) - Static method in class EditorPackage.Editor
120 |
 
121 |
122 | 123 | 124 | 125 |

O

126 |
127 |
onKeyPressed() - Method in class EditorPackage.EditorController
128 |
129 |
This Method Saves any Key Strokes in StackUndo
130 |
131 |
onLoad() - Method in class EditorPackage.EditorController
132 |
133 |
This Method Invokes When Button Load Is Clicked 134 | For Loading Files With Different Extensions
135 |
136 |
onNewTab() - Method in class EditorPackage.EditorController
137 |
138 |
When Button New Tab Is Clicked 139 | For Creating New Instance Of Controller And Model Class
140 |
141 |
onRedo() - Method in class EditorPackage.EditorController
142 |
143 |
This Method Invokes When Button Redo Is Clicked 144 | To Perform Redo Action
145 |
146 |
onSave() - Method in class EditorPackage.EditorController
147 |
148 |
This Method Invokes When Button Save Is Clicked 149 | For Saving Editor Content As *.html
150 |
151 |
onSaveAs() - Method in class EditorPackage.EditorController
152 |
153 |
This Method Invokes When Button SaveAs Is Clicked 154 | For Saving Editor Content Either As *.html Or *.txt
155 |
156 |
onUndo() - Method in class EditorPackage.EditorController
157 |
158 |
This Method Invokes When Button Undo Is Clicked 159 | To Perform Undo Action
160 |
161 |
162 | 163 | 164 | 165 |

S

166 |
167 |
Save(File, String) - Method in class EditorPackage.EditorModel
168 |
169 |
This Method Saves Content In The Editor In The Specified File
170 |
171 |
Save(String) - Method in class EditorPackage.EditorModel
172 |
173 |
This Method Saves Content In The Editor In The Same File That Already Been Saved
174 |
175 |
scene - Static variable in class EditorPackage.Editor
176 |
 
177 |
start(Stage) - Method in class EditorPackage.Editor
178 |
 
179 |
180 | E H L M O S 
181 | 182 |
183 | 184 | 185 |
Skip navigation links
186 | 187 | 188 | 189 | 197 |
198 | 225 | 226 | 227 | 228 | -------------------------------------------------------------------------------- /src/Doc/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Generated Documentation (Untitled) 7 | 60 | 61 | 62 | 63 | 64 | 65 | <noscript> 66 | <div>JavaScript is disabled on your browser.</div> 67 | </noscript> 68 | <h2>Frame Alert</h2> 69 | <p>This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. Link to <a href="EditorPackage/package-summary.html">Non-frame version</a>.</p> 70 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /src/Doc/overview-tree.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Class Hierarchy 7 | 8 | 9 | 10 | 11 | 12 | 22 | 25 | 26 |
27 | 28 | 29 |
Skip navigation links
30 | 31 | 32 | 33 | 41 |
42 | 69 | 70 |
71 |

Hierarchy For All Packages

72 | Package Hierarchies: 73 | 76 |
77 |
78 |

Class Hierarchy

79 | 92 |
93 | 94 |
95 | 96 | 97 |
Skip navigation links
98 | 99 | 100 | 101 | 109 |
110 | 137 | 138 | 139 | 140 | -------------------------------------------------------------------------------- /src/Doc/package-list: -------------------------------------------------------------------------------- 1 | EditorPackage 2 | -------------------------------------------------------------------------------- /src/Doc/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/EditorPackage/Editor.java: -------------------------------------------------------------------------------- 1 | package EditorPackage; 2 | /** 3 | * This Program Is a Rich TextEditor That Can Save Files Either As *.txt (Plain Text) Or As *.html (Web view) . 4 | * This Program has Multiple Shortcuts for Different Operations such as opening Files (Ctrl + O) And Saving File (Ctrl + S) 5 | * This Program also can Perform Redo/Undo Actions 6 | *This Program follows MVC architecture 7 | * 8 | * @author Mohanna Rajabi 9 | * @version 1.0 10 | * 11 | */ 12 | 13 | import javafx.application.Application; 14 | import javafx.event.EventHandler; 15 | import javafx.fxml.FXMLLoader; 16 | import javafx.scene.Scene; 17 | import javafx.scene.input.*; 18 | import javafx.stage.Stage; 19 | 20 | import java.awt.*; 21 | import java.io.IOException; 22 | 23 | 24 | /** 25 | * This Class is used for Generating View based on FxmlFile {@link FxmlFile} 26 | */ 27 | public class Editor extends Application { 28 | 29 | public static Scene scene= null; 30 | public static Stage stage=null; 31 | 32 | /** 33 | * 34 | * @param primaryStage 35 | * @throws Exception 36 | */ 37 | @Override 38 | public void start(Stage primaryStage) { 39 | 40 | stage=primaryStage; 41 | 42 | FXMLLoader fxmlLoader=new FXMLLoader(getClass().getResource("editor.fxml")); 43 | 44 | EditorController editorController =new EditorController(new EditorModel()); 45 | 46 | fxmlLoader.setControllerFactory(t -> editorController); 47 | 48 | try { 49 | 50 | scene = new Scene(fxmlLoader.load()); 51 | 52 | } 53 | catch (IOException e) { 54 | 55 | e.printStackTrace(); 56 | 57 | } 58 | 59 | stage.setScene(scene); 60 | 61 | stage.show(); 62 | 63 | //ShortCut For Saving The File 64 | 65 | scene.addEventFilter(KeyEvent.KEY_PRESSED, new EventHandler() { 66 | 67 | final KeyCombination keyComb = new KeyCodeCombination(KeyCode.S, KeyCombination.CONTROL_DOWN); 68 | 69 | public void handle(KeyEvent ke) { 70 | 71 | if (keyComb.match(ke)) { 72 | 73 | editorController.onSave(); 74 | 75 | } 76 | } 77 | }); 78 | 79 | //Shortcut For Opening A File 80 | 81 | scene.addEventFilter(KeyEvent.KEY_PRESSED, new EventHandler() { 82 | 83 | final KeyCombination keyComb = new KeyCodeCombination(KeyCode.O, KeyCombination.CONTROL_DOWN); 84 | 85 | public void handle(KeyEvent ke) { 86 | 87 | if (keyComb.match(ke)) { 88 | 89 | editorController.onLoad(); 90 | } 91 | } 92 | }); 93 | 94 | 95 | 96 | primaryStage.setOnCloseRequest(e -> { 97 | 98 | editorController.onClose(e); 99 | 100 | }); 101 | 102 | 103 | } 104 | public static void main(String[] args) { 105 | Application.launch(args); 106 | } 107 | } 108 | 109 | 110 | -------------------------------------------------------------------------------- /src/EditorPackage/EditorController.java: -------------------------------------------------------------------------------- 1 | package EditorPackage; 2 | import javafx.event.Event; 3 | import javafx.fxml.FXML; 4 | import javafx.fxml.FXMLLoader; 5 | import javafx.scene.Scene; 6 | import javafx.scene.control.Alert; 7 | import javafx.scene.control.ButtonType; 8 | import javafx.scene.web.HTMLEditor; 9 | import javafx.stage.FileChooser; 10 | import javafx.stage.Stage; 11 | import java.io.*; 12 | import java.util.Optional; 13 | import java.util.Stack; 14 | 15 | /** 16 | *This is a Controller Class For FxmlFile {@link FxmlFile} 17 | */ 18 | public class EditorController { 19 | 20 | @FXML 21 | public HTMLEditor htmlEditor; 22 | 23 | private final Stack stackUndo = new Stack(); 24 | 25 | private final Stack stackRedo = new Stack(); 26 | 27 | private final EditorModel model; 28 | 29 | //Constructor For EditorController 30 | 31 | public EditorController(EditorModel model) { 32 | 33 | this.model = model; 34 | 35 | } 36 | 37 | 38 | /** 39 | * This Method Saves any Key Strokes in StackUndo 40 | */ 41 | @FXML 42 | public void onKeyPressed() { 43 | 44 | if(htmlEditor.getHtmlText().length()+808-Editor.scene.getWidth()>0 && htmlEditor.getWidth()<4050){ 45 | 46 | htmlEditor.setPrefWidth(htmlEditor.getWidth()+18); 47 | } 48 | 49 | stackUndo.push(htmlEditor.getHtmlText()); 50 | 51 | } 52 | 53 | 54 | /** 55 | *This Method Invokes When Button SaveAs Is Clicked 56 | * For Saving Editor Content Either As *.html Or *.txt 57 | */ 58 | @FXML 59 | public void onSaveAs() { 60 | 61 | FileChooser chooser = new FileChooser(); 62 | 63 | //Getting Desired File Extension And Name 64 | 65 | chooser.getExtensionFilters().addAll( 66 | 67 | new FileChooser.ExtensionFilter("HTML files (*.html)", "*.html"), 68 | 69 | new FileChooser.ExtensionFilter("Plain Text (*.txt)", "*.txt"), 70 | 71 | new FileChooser.ExtensionFilter("All files (*.*)", "*.*") 72 | ); 73 | 74 | File file = chooser.showSaveDialog(null); 75 | 76 | String content = ""; 77 | 78 | if(file != null) { 79 | 80 | 81 | //Getting Chosen Extension 82 | 83 | String fileExtension = file.getName().substring(file.getName().lastIndexOf(".") + 1); 84 | 85 | //Getting Proper Content Based On File Extension 86 | 87 | if (fileExtension.equals("txt")) { 88 | 89 | //Deleting Html Tags 90 | 91 | content = htmlEditor.getHtmlText().replaceAll("
", "\n"); 92 | 93 | content = content.replaceAll("

", "\n"); 94 | 95 | content = content.replaceAll("\\<.*?\\>", ""); 96 | 97 | content = content.replaceAll(" ", " "); 98 | 99 | } else { 100 | 101 | content = htmlEditor.getHtmlText(); 102 | 103 | } 104 | 105 | model.Save(file, content); 106 | } 107 | else { 108 | 109 | //Showing Alert For Error Accrued While Opening The File 110 | 111 | Alert alert = new Alert(Alert.AlertType.ERROR); 112 | 113 | alert.setHeaderText(null); 114 | 115 | alert.setTitle("Error"); 116 | 117 | alert.setContentText("Error in Opening the File ! "); 118 | 119 | alert.show(); 120 | } 121 | 122 | } 123 | 124 | 125 | /** 126 | * This Method Invokes When Button Save Is Clicked 127 | * For Saving Editor Content As *.html 128 | */ 129 | @FXML 130 | public void onSave() { 131 | 132 | String content ; 133 | 134 | //Getting Content In The Editor 135 | 136 | content = htmlEditor.getHtmlText(); 137 | 138 | model.Save(content); 139 | 140 | } 141 | 142 | 143 | 144 | /** 145 | * This Method Invokes When Button Load Is Clicked 146 | * For Loading Files With Different Extensions 147 | */ 148 | @FXML 149 | public void onLoad() { 150 | 151 | //Choosing File 152 | 153 | FileChooser fileChooser = new FileChooser(); 154 | 155 | fileChooser.setInitialDirectory(new File("./")); 156 | 157 | File file = fileChooser.showOpenDialog(null); 158 | 159 | htmlEditor.setHtmlText(model.Load(file)); 160 | 161 | } 162 | 163 | 164 | 165 | /** 166 | * This Method Invokes When Button Undo Is Clicked 167 | * To Perform Undo Action 168 | */ 169 | @FXML 170 | public void onUndo(){ 171 | 172 | if(!stackUndo.isEmpty()) { 173 | 174 | String last = stackUndo.pop(); 175 | 176 | htmlEditor.setHtmlText(last); 177 | 178 | stackRedo.push(last); 179 | 180 | } 181 | } 182 | 183 | 184 | 185 | 186 | /** 187 | * This Method Invokes When Button Redo Is Clicked 188 | * To Perform Redo Action 189 | */ 190 | @FXML 191 | public void onRedo(){ 192 | 193 | if(!stackRedo.isEmpty()) { 194 | 195 | String last = stackRedo.pop(); 196 | 197 | htmlEditor.setHtmlText(last); 198 | 199 | stackUndo.push(last); 200 | } 201 | 202 | } 203 | 204 | 205 | 206 | /** 207 | * This Method is Called When Event Close Happens 208 | * @param ev Event 209 | */ 210 | @FXML 211 | void onClose(Event ev){ 212 | 213 | //Setting Alert For Confirmation for Saving File before Exiting 214 | 215 | Alert alert = new Alert(Alert.AlertType.CONFIRMATION); 216 | 217 | alert.setHeaderText(null); 218 | 219 | alert.setTitle("Exit?"); 220 | 221 | alert.setContentText("Do you Want To Save Before Exit"); 222 | 223 | alert.getButtonTypes().clear(); 224 | 225 | alert.getButtonTypes().addAll(ButtonType.OK,ButtonType.CLOSE,ButtonType.CANCEL); 226 | 227 | Optional result = alert.showAndWait(); 228 | 229 | //When Button Close Is Clicked .Closing the App 230 | 231 | if(result.get() == ButtonType.CLOSE){ 232 | 233 | System.exit(0); 234 | 235 | } 236 | 237 | //When Button Ok Is Clicked. Saving File As Either *.html Or *.txt 238 | 239 | else if(result.get() == ButtonType.OK) { 240 | 241 | onSaveAs(); 242 | 243 | Alert alertFile = new Alert(Alert.AlertType.INFORMATION); 244 | 245 | alertFile.setHeaderText(null); 246 | 247 | alertFile.setTitle("Alert"); 248 | 249 | alertFile.setContentText("File Saved "); 250 | 251 | alertFile.showAndWait(); 252 | 253 | System.exit(0); 254 | 255 | } 256 | 257 | //When Button Cancel Is Clicked . Consuming The Event And Closing The Alert 258 | 259 | else if(result.get() == ButtonType.CANCEL){ 260 | 261 | alert.close(); 262 | 263 | ev.consume(); 264 | 265 | } 266 | } 267 | 268 | 269 | 270 | /** 271 | * When Button About Is Clicked 272 | * For Showing Information About The Programmer And Application 273 | */ 274 | @FXML 275 | private void onAbout(){ 276 | 277 | Alert alert = new Alert(Alert.AlertType.INFORMATION); 278 | 279 | alert.setHeaderText(null); 280 | 281 | alert.setTitle("About"); 282 | 283 | alert.setContentText("This is a simple text editor EditorApp Created by Mohanna Rajabi"+"\n\n"+ 284 | String.format("Java version: %s, %s, JavaFX version: %s",System.getProperty("java.version") 285 | ,System.getProperty("java.vendor"), System.getProperty("javafx.version"))); 286 | 287 | alert.show(); 288 | } 289 | 290 | 291 | 292 | /** 293 | * When Button New Tab Is Clicked 294 | * For Creating New Instance Of Controller And Model Class 295 | * 296 | * @throws IOException when loading fxml file 297 | */ 298 | @FXML 299 | public void onNewTab() throws IOException{ 300 | 301 | //Creating New Instance Of Program 302 | 303 | FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("editor.fxml")); 304 | 305 | EditorController editorController = new EditorController(new EditorModel()); 306 | 307 | fxmlLoader.setControllerFactory(t -> editorController); 308 | 309 | 310 | Stage primaryStage = new Stage(); 311 | 312 | primaryStage.setScene(new Scene(fxmlLoader.load())); 313 | 314 | primaryStage.show(); 315 | 316 | } 317 | 318 | } 319 | -------------------------------------------------------------------------------- /src/EditorPackage/EditorModel.java: -------------------------------------------------------------------------------- 1 | package EditorPackage; 2 | import javafx.scene.control.Alert; 3 | import java.io.*; 4 | import java.nio.file.Files; 5 | import java.nio.file.Paths; 6 | 7 | /** 8 | * This Class is Model Class For EditorApplication 9 | * 10 | */ 11 | public class EditorModel { 12 | 13 | private File file; 14 | private String Content; 15 | 16 | 17 | /** 18 | * This Method Saves Content In The Editor In The Specified File 19 | * @param file files loction 20 | * @param content content in editor 21 | */ 22 | public void Save(File file,String content) { 23 | 24 | 25 | PrintWriter outputFile = null; 26 | 27 | try { 28 | 29 | //Writing Into File 30 | 31 | outputFile = new PrintWriter(file); 32 | 33 | outputFile.println(content); 34 | 35 | outputFile.close(); 36 | 37 | this.file = file; 38 | 39 | } catch (FileNotFoundException e) { 40 | 41 | e.printStackTrace(); 42 | 43 | //Setting Alert To SaveAs File First 44 | 45 | Alert alert = new Alert(Alert.AlertType.ERROR); 46 | 47 | alert.setHeaderText(null); 48 | 49 | alert.setTitle("Error"); 50 | 51 | alert.setContentText("Error in Saving File ! Please read log for more information "); 52 | 53 | alert.show(); 54 | 55 | } 56 | 57 | 58 | } 59 | 60 | 61 | 62 | /** 63 | * This Method Saves Content In The Editor In The Same File That Already Been Saved 64 | * @param content content in the editor 65 | */ 66 | public void Save(String content){ 67 | 68 | PrintWriter outputFile = null; 69 | 70 | try { 71 | 72 | //Writing Into File 73 | 74 | outputFile = new PrintWriter(file); 75 | 76 | outputFile.println(content); 77 | 78 | outputFile.close(); 79 | 80 | //Setting Alert For Action Saving The File Successfully 81 | 82 | Alert alert = new Alert(Alert.AlertType.INFORMATION); 83 | 84 | alert.setHeaderText(null); 85 | 86 | alert.setTitle("File Saved"); 87 | 88 | alert.setContentText("File Saved Successfully"); 89 | 90 | alert.show(); 91 | 92 | } 93 | catch (Exception e) { 94 | 95 | System.out.println(e.getMessage()); 96 | 97 | //Setting Alert For SavingAs The File First 98 | 99 | Alert alert = new Alert(Alert.AlertType.ERROR); 100 | 101 | alert.setHeaderText(null); 102 | 103 | alert.setTitle("Error"); 104 | 105 | alert.setContentText("Error Please SaveAs File First "); 106 | 107 | alert.show(); 108 | } 109 | } 110 | 111 | 112 | /** 113 | * This Method Loads Content Of The File And Then Converts Content of The File To Proper Format 114 | * @param file files location 115 | * @return Content content of the editor 116 | */ 117 | 118 | public String Load(File file) { 119 | 120 | Content=""; 121 | 122 | if (file != null) { 123 | 124 | //Getting File Extension 125 | 126 | String fileExtension = file.getName().substring(file.getName().lastIndexOf(".") + 1); 127 | 128 | if (fileExtension.equals("txt")){ 129 | 130 | //Reading From txt File 131 | 132 | try (BufferedReader br = Files.newBufferedReader(Paths.get(file.getPath()))) { 133 | 134 | for (String line = null; (line = br.readLine()) != null; ) { 135 | 136 | Content += line+"\n"; 137 | 138 | } 139 | } 140 | catch (Exception e){ 141 | 142 | System.out.println(e.getMessage()); 143 | } 144 | 145 | 146 | Content = Content.replaceAll(" "," "); 147 | 148 | //Deleting Html Tangs 149 | 150 | Content = Content.replaceAll("\n","
"); 151 | 152 | Content=Content.replaceAll("\r",""); 153 | 154 | } 155 | 156 | // File Extension Is .Html 157 | 158 | else { 159 | 160 | //Reading From File 161 | 162 | try (BufferedReader br = Files.newBufferedReader(Paths.get(file.getPath()))) { 163 | 164 | for (String line = null; (line = br.readLine()) != null; ) { 165 | 166 | Content += line; 167 | 168 | } 169 | 170 | this.file = file; 171 | 172 | } catch (IOException e) { 173 | 174 | e.printStackTrace(); 175 | 176 | } 177 | } 178 | } 179 | 180 | else { 181 | 182 | //Showing Alert For Error Accrued While Opening The File 183 | 184 | Alert alert = new Alert(Alert.AlertType.ERROR); 185 | 186 | alert.setHeaderText(null); 187 | 188 | alert.setTitle("Error"); 189 | 190 | alert.setContentText("Error in Opening the File ! "); 191 | 192 | alert.show(); 193 | 194 | } 195 | 196 | return Content; 197 | } 198 | } 199 | -------------------------------------------------------------------------------- /src/EditorPackage/editor.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 |
41 | 42 | 45 | 46 |
47 |
48 | --------------------------------------------------------------------------------