From e7092799b611212f3726ab86b301f9151f366c78 Mon Sep 17 00:00:00 2001 From: Madeorsk Date: Sun, 6 Nov 2016 12:08:41 +0100 Subject: [PATCH] Finished List note selection, creation and save/load --- .../com/madeorsk/smartnotes/ExplorerItem.java | 5 +- .../src/com/madeorsk/smartnotes/ListBox.java | 229 ++++++++++++++++++ .../madeorsk/smartnotes/NotesExplorer.java | 12 + .../com/madeorsk/smartnotes/TypeSelector.java | 36 ++- .../madeorsk/smartnotes/notes/ListNote.java | 79 +++++- .../com/madeorsk/smartnotes/notes/Note.java | 27 ++- .../smartnotes/notes/SavableNote.java | 1 + .../madeorsk/smartnotes/notes/TextNote.java | 20 +- .../madeorsk/smartnotes/res/AddCheckbox.png | Bin 0 -> 17876 bytes .../smartnotes/res/Checkbox-checked.png | Bin 0 -> 17943 bytes .../smartnotes/res/Checkbox-unchecked.png | Bin 0 -> 17837 bytes .../src/com/madeorsk/smartnotes/style.css | 10 +- 12 files changed, 395 insertions(+), 24 deletions(-) create mode 100644 SmartNotes/src/com/madeorsk/smartnotes/ListBox.java create mode 100644 SmartNotes/src/com/madeorsk/smartnotes/res/AddCheckbox.png create mode 100644 SmartNotes/src/com/madeorsk/smartnotes/res/Checkbox-checked.png create mode 100644 SmartNotes/src/com/madeorsk/smartnotes/res/Checkbox-unchecked.png diff --git a/SmartNotes/src/com/madeorsk/smartnotes/ExplorerItem.java b/SmartNotes/src/com/madeorsk/smartnotes/ExplorerItem.java index 71a6ea6..1a8d580 100644 --- a/SmartNotes/src/com/madeorsk/smartnotes/ExplorerItem.java +++ b/SmartNotes/src/com/madeorsk/smartnotes/ExplorerItem.java @@ -1,7 +1,6 @@ package com.madeorsk.smartnotes; import com.madeorsk.smartnotes.notes.Note; -import com.madeorsk.smartnotes.notes.TextNote; import com.madeorsk.smartnotes.paths.FolderPath; import javafx.event.EventHandler; @@ -34,7 +33,7 @@ public class ExplorerItem extends HBox else { explorer.requestLoad((Note) ExplorerItem.this.item); - SmartNotes.instance.setContent(((TextNote) ExplorerItem.this.item).getNoteBox(explorer)); + SmartNotes.instance.setContent(((Note) ExplorerItem.this.item).getNoteBox(explorer)); } } }); @@ -53,7 +52,7 @@ public class ExplorerItem extends HBox else { Note note = (Note) this.item; - this.getChildren().add(new ImageView(new Image("/com/madeorsk/smartnotes/res/TextNoteIcon-" + note.getNoteColor().name() + ".png"))); + this.getChildren().add(new ImageView(new Image("/com/madeorsk/smartnotes/res/" + note.getClass().getSimpleName() + "Icon-" + note.getNoteColor().name() + ".png"))); Label noteNameLabel = new Label(note.getName()); noteNameLabel.setId("noteItemName"); this.getChildren().add(noteNameLabel); diff --git a/SmartNotes/src/com/madeorsk/smartnotes/ListBox.java b/SmartNotes/src/com/madeorsk/smartnotes/ListBox.java new file mode 100644 index 0000000..47c180e --- /dev/null +++ b/SmartNotes/src/com/madeorsk/smartnotes/ListBox.java @@ -0,0 +1,229 @@ +package com.madeorsk.smartnotes; + +import java.util.HashMap; +import java.util.Map; + +import javafx.animation.FadeTransition; +import javafx.beans.property.BooleanProperty; +import javafx.beans.property.SimpleBooleanProperty; +import javafx.beans.value.ChangeListener; +import javafx.beans.value.ObservableBooleanValue; +import javafx.beans.value.ObservableValue; +import javafx.event.EventHandler; +import javafx.geometry.Insets; +import javafx.geometry.Pos; +import javafx.scene.Cursor; +import javafx.scene.Node; +import javafx.scene.control.Label; +import javafx.scene.control.ScrollPane; +import javafx.scene.control.TextField; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.scene.input.MouseEvent; +import javafx.scene.layout.HBox; +import javafx.scene.layout.VBox; +import javafx.util.Duration; + +public class ListBox extends ScrollPane +{ + private VBox main; + private VBox listContainer; + + private Runnable listChangeListener; + + public ListBox() + { + this.setFitToHeight(true); + this.setFitToWidth(true); + + this.main = new VBox(); + this.main.setPadding(new Insets(0, 15, 0, 15)); + this.listContainer = new VBox(); + this.main.getChildren().add(this.listContainer); + + final HBox addListItemBox = new HBox(); + { + addListItemBox.getChildren().add(new ImageView(new Image("/com/madeorsk/smartnotes/res/AddCheckbox.png"))); + Label addListItemLabel = new Label("Add a new item"); + addListItemLabel.setPadding(new Insets(0, 0, 0, 13)); + addListItemLabel.setId("text"); + addListItemBox.getChildren().add(addListItemLabel); + addListItemBox.setAlignment(Pos.CENTER_LEFT); + addListItemBox.setCursor(Cursor.HAND); + // Fade and opacity + addListItemBox.setOpacity(0.4); + addListItemBox.setOnMouseEntered(new EventHandler() + { + @Override + public void handle(MouseEvent e) + { + FadeTransition transition = new FadeTransition(Duration.millis(200), addListItemBox); + transition.setFromValue(0.4); + transition.setToValue(1.0); + transition.play(); + } + }); + addListItemBox.setOnMouseExited(new EventHandler() + { + @Override + public void handle(MouseEvent e) + { + FadeTransition transition = new FadeTransition(Duration.millis(200), addListItemBox); + transition.setFromValue(1.0); + transition.setToValue(0.4); + transition.play(); + } + }); + addListItemBox.setOnMouseClicked(new EventHandler() + { + @Override + public void handle(MouseEvent e) + { + ListBox.this.listContainer.getChildren().add(new ListBoxItem("")); + } + }); + } + this.main.getChildren().add(addListItemBox); + + this.setContent(this.main); + } + + public void updateList(Map content) + { + this.listContainer.getChildren().clear(); + for(String item : content.keySet()) + this.listContainer.getChildren().add(new ListBoxItem(item).setChecked(content.get(item).booleanValue())); + } + + public void setListChangeListener(Runnable listener) + { + this.listChangeListener = listener; + } + + public Map getList() + { + Map list = new HashMap(); + for(Node child : this.listContainer.getChildren()) + { + ListBoxItem item = (ListBoxItem) child; + if (item.getText() != null && !item.getText().isEmpty()) + list.put(item.getText(), item.isChecked()); + } + return list; + } + + private class ListBoxItem extends HBox + { + private ListCheckbox checkbox; + private TextField field; + + public ListBoxItem(String text) + { + ChangeListener change = new ChangeListener() + { + @Override + public void changed(ObservableValue ov, Object oldValue, Object newValue) + { + if (ListBox.this.listChangeListener != null) + ListBox.this.listChangeListener.run(); + } + }; + this.checkbox = new ListCheckbox(); + this.checkbox.checkedProperty().addListener(change); + this.getChildren().add(this.checkbox); + this.field = new TextField(text); + this.field.setId("text"); + this.field.prefWidthProperty().bind(ListBox.this.listContainer.widthProperty().subtract(this.checkbox.widthProperty())); + this.field.textProperty().addListener(change); + this.getChildren().add(this.field); + } + + public String getText() + { + return this.field.getText(); + } + + public ListBoxItem setChecked(boolean checked) + { + this.checkbox.setChecked(checked); + return this; + } + public boolean isChecked() + { + return this.checkbox.isChecked(); + } + + private class ListCheckbox extends VBox + { + private BooleanProperty checked = new SimpleBooleanProperty(); + + public ListCheckbox() + { + this.setId("imageButton"); + this.setAlignment(Pos.CENTER); + this.setCursor(Cursor.HAND); + this.getChildren().add(new ImageView(new Image("/com/madeorsk/smartnotes/res/Checkbox-unchecked.png"))); + + /*this.setOpacity(0.4); + this.setOnMouseEntered(new EventHandler() + { + @Override + public void handle(MouseEvent e) + { + if (!ListCheckbox.this.isChecked()) + { + FadeTransition transition = new FadeTransition(Duration.millis(200), ListCheckbox.this); + transition.setFromValue(0.4); + transition.setToValue(1.0); + transition.play(); + } + } + }); + this.setOnMouseExited(new EventHandler() + { + @Override + public void handle(MouseEvent e) + { + if (!ListCheckbox.this.isChecked()) + { + FadeTransition transition = new FadeTransition(Duration.millis(200), ListCheckbox.this); + transition.setFromValue(1.0); + transition.setToValue(0.4); + transition.play(); + } + } + });*/ + + this.setOnMouseClicked(new EventHandler() + { + @Override + public void handle(MouseEvent e) + { + if (ListCheckbox.this.isChecked()) + ListCheckbox.this.setChecked(false); + else + ListCheckbox.this.setChecked(true); + } + }); + } + + public void setChecked(boolean checked) + { + this.checked.set(checked); + ListCheckbox.this.getChildren().clear(); + if (checked) + ListCheckbox.this.getChildren().add(new ImageView(new Image("/com/madeorsk/smartnotes/res/Checkbox-checked.png"))); + else + ListCheckbox.this.getChildren().add(new ImageView(new Image("/com/madeorsk/smartnotes/res/Checkbox-unchecked.png"))); + } + public ObservableBooleanValue checkedProperty() + { + return this.checked; + } + public boolean isChecked() + { + return this.checked.get(); + } + } + } +} diff --git a/SmartNotes/src/com/madeorsk/smartnotes/NotesExplorer.java b/SmartNotes/src/com/madeorsk/smartnotes/NotesExplorer.java index ccdb695..5f80e01 100644 --- a/SmartNotes/src/com/madeorsk/smartnotes/NotesExplorer.java +++ b/SmartNotes/src/com/madeorsk/smartnotes/NotesExplorer.java @@ -177,6 +177,18 @@ public class NotesExplorer extends VBox } } + public void replaceNote(Note oldNote, Note newNote) + { + for(int key : this.notes.keySet()) + { + if (this.notes.get(key).equals(oldNote)) + { + this.notes.get(key).delete(this.saves, key); + this.notes.put(key, newNote); + } + } + } + public void requestSave(Note note) { for (int key : this.notes.keySet()) diff --git a/SmartNotes/src/com/madeorsk/smartnotes/TypeSelector.java b/SmartNotes/src/com/madeorsk/smartnotes/TypeSelector.java index 66b92d7..990d0f6 100644 --- a/SmartNotes/src/com/madeorsk/smartnotes/TypeSelector.java +++ b/SmartNotes/src/com/madeorsk/smartnotes/TypeSelector.java @@ -16,19 +16,53 @@ import javafx.util.Duration; public class TypeSelector extends HBox { - public TypeSelector(NotesExplorer explorer, Note note) + public TypeSelector(final NotesExplorer explorer, final Note note) { this.setSpacing(15); TypeItem textNoteItem = new TypeItem("/com/madeorsk/smartnotes/res/TextNoteChoice.png"); { if (note instanceof TextNote) textNoteItem.setSelected(true); + else + { + textNoteItem.setOnMouseClicked(new EventHandler() + { + @Override + public void handle(MouseEvent event) + { + Note textNote = new TextNote(); + textNote.setName(note.getName()); + textNote.setTextContent(note.getTextContent()); + textNote.setNoteColor(note.getNoteColor()); + explorer.replaceNote(note, textNote); + explorer.requestSave(textNote); + SmartNotes.instance.setContent(textNote.getNoteBox(explorer)); + } + }); + } } this.getChildren().add(textNoteItem); TypeItem listNoteItem = new TypeItem("/com/madeorsk/smartnotes/res/ListNoteChoice.png"); { if (note instanceof ListNote) listNoteItem.setSelected(true); + else + { + listNoteItem.setOnMouseClicked(new EventHandler() + { + @Override + public void handle(MouseEvent event) + { + Note listNote = new ListNote(); + listNote.setName(note.getName()); + listNote.setTextContent(note.getTextContent()); + listNote.setNoteColor(note.getNoteColor()); + explorer.replaceNote(note, listNote); + explorer.requestSave(listNote); + SmartNotes.instance.setContent(listNote.getNoteBox(explorer)); + } + }); + } } this.getChildren().add(listNoteItem); TypeItem imageNoteItem = new TypeItem("/com/madeorsk/smartnotes/res/ImageNoteChoice.png"); diff --git a/SmartNotes/src/com/madeorsk/smartnotes/notes/ListNote.java b/SmartNotes/src/com/madeorsk/smartnotes/notes/ListNote.java index 5da30e8..161e76c 100644 --- a/SmartNotes/src/com/madeorsk/smartnotes/notes/ListNote.java +++ b/SmartNotes/src/com/madeorsk/smartnotes/notes/ListNote.java @@ -1,13 +1,18 @@ package com.madeorsk.smartnotes.notes; +import java.io.File; import java.util.Calendar; +import java.util.HashMap; +import java.util.Map; +import com.madeorsk.smartnotes.ListBox; import com.madeorsk.smartnotes.NoteColorSelector; import com.madeorsk.smartnotes.NotesExplorer; import com.madeorsk.smartnotes.SavesManager; import com.madeorsk.smartnotes.SmartNotes; import com.madeorsk.smartnotes.TypeSelector; +import javafx.application.Platform; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.event.EventHandler; @@ -24,9 +29,13 @@ import javafx.scene.layout.VBox; public class ListNote extends Note { + private ListBox listBox; + private boolean loading = false; + public ListNote() { this.setName("Text_" + Calendar.getInstance().get(Calendar.YEAR) + "." + Calendar.getInstance().get(Calendar.MONTH) + "." + Calendar.getInstance().get(Calendar.DAY_OF_MONTH) + "-" + Calendar.getInstance().get(Calendar.HOUR_OF_DAY) + ":" + Calendar.getInstance().get(Calendar.MINUTE)); + this.listBox = new ListBox(); } @Override @@ -98,11 +107,17 @@ public class ListNote extends Note } box.getChildren().add(nameField); - TextArea textArea = new TextArea(); + // + + HBox separator = new HBox(); + separator.setId("separator"); + separator.setPrefHeight(5); + + final TextArea textArea = new TextArea(); { - textArea.setId("textArea"); + textArea.setId("text"); textArea.setWrapText(true); - textArea.prefHeightProperty().bind(box.heightProperty().subtract(nameField.heightProperty()).subtract(titleBox.heightProperty())); + textArea.prefHeightProperty().bind(box.heightProperty().subtract(nameField.heightProperty()).subtract(titleBox.heightProperty()).subtract(separator.heightProperty()).divide(2)); textArea.setText(this.getTextContent()); textArea.textProperty().addListener(new ChangeListener() { @@ -113,35 +128,91 @@ public class ListNote extends Note explorer.requestSave(ListNote.this); } }); + Platform.runLater(new Runnable() + { + @Override + public void run() + { + textArea.requestFocus(); + textArea.positionCaret(textArea.getLength()); + } + }); } box.getChildren().add(textArea); + box.getChildren().add(separator); + + this.listBox.prefHeightProperty().bind(box.heightProperty().subtract(nameField.heightProperty()).subtract(titleBox.heightProperty()).subtract(separator.heightProperty()).divide(2)); + this.listBox.setListChangeListener(new Runnable() + { + @Override + public void run() + { + if (!ListNote.this.loading) + explorer.requestSave(ListNote.this); + } + }); + box.getChildren().add(this.listBox); + return box; } @Override public void save(SavesManager saves, int id) { - saves.writeFile(saves.getSaveFile(id), this.getName() + "\n" + this.getNoteColor().name() + "\n" + this.getTextContent()); + String fileContent = this.getName() + "\n" + this.getNoteColor().name() + "\n"; + Map list = this.listBox.getList(); + fileContent += Integer.toUnsignedString(list.keySet().size(), 16) + "\n"; + for(String key : list.keySet()) + fileContent += key + ":" + list.get(key).toString() + "\n"; + saves.writeFile(saves.getSaveFile(id), fileContent + this.getTextContent()); } @Override public boolean load(SavesManager saves, int id) { if (saves.getSaveFile(id).exists()) { + this.loading = true; + String saved = saves.readFile(saves.getSaveFile(id)); + int separatorIndex = saved.indexOf('\n'); this.setName(saved.substring(0, separatorIndex)); saved = saved.substring(separatorIndex + 1); + separatorIndex = saved.indexOf('\n'); this.setNoteColor(NoteColor.valueOf(saved.substring(0, separatorIndex))); + saved = saved.substring(separatorIndex + 1); + + separatorIndex = saved.indexOf('\n'); + int listSize = Integer.parseUnsignedInt(saved.substring(0, separatorIndex), 16); + Map list = new HashMap(); + for(int i = 0; i < listSize; i++) + { + saved = saved.substring(separatorIndex + 1); + separatorIndex = saved.indexOf('\n'); + String listItemString = saved.substring(0, separatorIndex); + int listItemSeparator = listItemString.lastIndexOf(':'); + list.put(listItemString.substring(0, listItemSeparator), Boolean.parseBoolean(listItemString.substring(listItemSeparator + 1))); + } + this.listBox.updateList(list); + if (separatorIndex < saved.length() - 1) this.setTextContent(saved.substring(separatorIndex + 1)); else this.setTextContent(""); + + this.loading = false; return true; } else return false; } + @Override + public void delete(SavesManager saves, int id) + { + File saveFile = saves.getSaveFile(id); + if (saveFile.exists()) + saveFile.delete(); + } } diff --git a/SmartNotes/src/com/madeorsk/smartnotes/notes/Note.java b/SmartNotes/src/com/madeorsk/smartnotes/notes/Note.java index 70e1598..9b6a223 100644 --- a/SmartNotes/src/com/madeorsk/smartnotes/notes/Note.java +++ b/SmartNotes/src/com/madeorsk/smartnotes/notes/Note.java @@ -73,19 +73,22 @@ public abstract class Note implements SavableNote { this.paths.clear(); String text = this.getTextContent(); - if (text.contains("\n")) + if (text != null) { - String[] lines = text.split("\n"); - String lastLine = lines[lines.length - 1]; - for(String word : lastLine.split(" ")) - if (word.startsWith("#") && !word.equals("#")) - this.paths.add(word); - } - else - { - for(String word : text.split(" ")) - if (word.startsWith("#") && !word.equals("#")) - this.paths.add(word); + if (text.contains("\n")) + { + String[] lines = text.split("\n"); + String lastLine = lines[lines.length - 1]; + for(String word : lastLine.split(" ")) + if (word.startsWith("#") && !word.equals("#")) + this.paths.add(word); + } + else + { + for(String word : text.split(" ")) + if (word.startsWith("#") && !word.equals("#")) + this.paths.add(word); + } } } diff --git a/SmartNotes/src/com/madeorsk/smartnotes/notes/SavableNote.java b/SmartNotes/src/com/madeorsk/smartnotes/notes/SavableNote.java index cfec795..89c7097 100644 --- a/SmartNotes/src/com/madeorsk/smartnotes/notes/SavableNote.java +++ b/SmartNotes/src/com/madeorsk/smartnotes/notes/SavableNote.java @@ -6,4 +6,5 @@ public interface SavableNote { public void save(SavesManager saves, int id); public boolean load(SavesManager saves, int id); + public void delete(SavesManager saves, int id); } diff --git a/SmartNotes/src/com/madeorsk/smartnotes/notes/TextNote.java b/SmartNotes/src/com/madeorsk/smartnotes/notes/TextNote.java index ec85eb5..f3fdb87 100644 --- a/SmartNotes/src/com/madeorsk/smartnotes/notes/TextNote.java +++ b/SmartNotes/src/com/madeorsk/smartnotes/notes/TextNote.java @@ -1,5 +1,6 @@ package com.madeorsk.smartnotes.notes; +import java.io.File; import java.util.Calendar; import com.madeorsk.smartnotes.NoteColorSelector; @@ -8,6 +9,7 @@ import com.madeorsk.smartnotes.SavesManager; import com.madeorsk.smartnotes.SmartNotes; import com.madeorsk.smartnotes.TypeSelector; +import javafx.application.Platform; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.event.EventHandler; @@ -100,7 +102,7 @@ public class TextNote extends Note TextArea textArea = new TextArea(); { - textArea.setId("textArea"); + textArea.setId("text"); textArea.setWrapText(true); textArea.prefHeightProperty().bind(box.heightProperty().subtract(nameField.heightProperty()).subtract(titleBox.heightProperty())); textArea.setText(this.getTextContent()); @@ -113,6 +115,15 @@ public class TextNote extends Note explorer.requestSave(TextNote.this); } }); + Platform.runLater(new Runnable() + { + @Override + public void run() + { + textArea.requestFocus(); + textArea.positionCaret(textArea.getLength()); + } + }); } box.getChildren().add(textArea); @@ -144,4 +155,11 @@ public class TextNote extends Note else return false; } + @Override + public void delete(SavesManager saves, int id) + { + File saveFile = saves.getSaveFile(id); + if (saveFile.exists()) + saveFile.delete(); + } } diff --git a/SmartNotes/src/com/madeorsk/smartnotes/res/AddCheckbox.png b/SmartNotes/src/com/madeorsk/smartnotes/res/AddCheckbox.png new file mode 100644 index 0000000000000000000000000000000000000000..4396c56c90d9fb5ed59e48c39714be9b6f9d5eb6 GIT binary patch literal 17876 zcmeI4O>87b6@WV-S`m}I5ELK+X*4Sk2+G}6{ojlytUYUNiCHYK(Rxp$x~kf4c4m4q z-L_|ah}cC!iUb@8f(U`Q!Uc&l2T%|fByQxA8%LG{7bHMJnAh{$E{`j-IDmp`chOYbNdU|S6*B(4CDItR%;hNKUBWoe+~YB>$Q(xhmU9bTlaFq_`vh! z`zhlGKm3Scv>vB>`^A3yixJDZtCVN4SRHoz(AzK?FAe*Y-4{hI76)l>t^Vg<{IXt4 z`C9$1+qT;M4RM%moespE)7yLO^gauD{iWtgV;F&ht|(}2*zNT4Xt-7%`HkRv*=*Kp zqb|k$wffC+z}kL$r?!y|M9p3G5W_a9`Qa*dLlQWjtq}`*rsbG8MA(kt&#`KgSG~Cc z-x>p+M7yoc$#5X8)enoJADQOK$;s-8y_yXUz&s31iTcTO*-8HChAA7(Luc+!v}hrkWoRRek%jlL8#!TQ zg`cr-WLXs_r~N6M`^212e~MB^;&(pt!H^|mc~k(QFe$ZD-&Lmm7y+p!#vkI zpVrKBVwNtroJ%1X`>&W^KE}zR=&3f!*wv`l+&q8?S#B4P{hl|J2WXh( zEuxeD2QEcUkFRzi5}(7y!ZxBY!6*@qk7An>Bog1YJT3%}Ar`NEA+SBoHUG;CF^^<+ zNP7o@H_hqVrVa0_g`*I23nf0Yy*Mb7WH4Rdzq^Uf-6!<5o29_4 zcPs`^k^~{uQYdT1Aa5pvtXre~ekWzLOsM8@k5B5t*?p*1WVOo8a!kJB?K>AW zP?x}wBdX-YX_>ifN|nsd?Z%0BC@iOy=93kER?q+LU|+aHWK4 z%yLyUt#NNc&0dzGd8J!<&n>UYIz2ewI#objw73!%mg`!WhbZJpFs{S{&yS&24nu)i z;;@jsQ)x9iKa@4MCB4>ikT0G8qW@eNS1aM2pb0$c94}24{_!s zD0UbD(e@o|#XgP0rJd0j6B7FZ2^&s9Ff$j0fg2*`*^bA<*yGmnGh;RvA+{{UJvdi! z;lyyHA^{?a!&%@u3=UpP&y2Z=@8VD(D`o+5g(Faq_yOV;Bd+JgPLg;_JL8Tg;*eO# zhL}Q03}sZ{xNsaxh;VHJt`ay}s!RA;oN+;kEkuC4#D>MWu+}gnP?)(c39yI3Asio< zbe3?M#GJwj6e0_`Hq49$G=Mo`;!#W(#K&T1V=EhbBkN>?cE&{$4gquP zd2=OMluuM5IIhCcX;jrTal^dOCimYjkDZ;P(XrAe7Q9S|k@CsL$h4}KP4B5qt7_SF zZu#Y2S~MYxj7F21D^}%WpJ=q|JMgGeG(Fd~-G(VQ%N9H7P;~ZNDLin<%Y!q4b&YIf z#X`e-ml;+R6T|W4t~`_+rP^^TJo1F6t>)};>xC>lJFdT*U*;=%H@!-}^dJ%twWx8a z`AAxgO9G-6H7+$DNvm;5K-8kfrRF1PH7*H=TGY7Id?c;LB>_>38kd@nq}8}2AZk(L zQuC3t8kYn_Eoxk9K9W}Bl7Og1jZ4i((rR215Vfdrsrg7+jY|Te7Bwz4A4#imNkG)1 z#--*XX*Dhhh+5RR)O;kZ#w7t!iyD`jkEGSOBp_;0<5KgHv>KNLL@jDuYCe)yBWX1*35Z%$;#!&ifQjhA zua=y^&y)Q0jbHrgC literal 0 HcmV?d00001 diff --git a/SmartNotes/src/com/madeorsk/smartnotes/res/Checkbox-checked.png b/SmartNotes/src/com/madeorsk/smartnotes/res/Checkbox-checked.png new file mode 100644 index 0000000000000000000000000000000000000000..e0eb9408194536404b370f640e72ed9ef49965dc GIT binary patch literal 17943 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 po_hM9-+cE&p9agvkDs>M|G4?~5B~h(Dk literal 0 HcmV?d00001 diff --git a/SmartNotes/src/com/madeorsk/smartnotes/style.css b/SmartNotes/src/com/madeorsk/smartnotes/style.css index fc1c196..061037c 100644 --- a/SmartNotes/src/com/madeorsk/smartnotes/style.css +++ b/SmartNotes/src/com/madeorsk/smartnotes/style.css @@ -17,11 +17,11 @@ -fx-border-radius: 0; } -#nameField, .scroll-pane, .scroll-pane .viewport, #textArea, #textArea .content, #imageButton +#nameField, .scroll-pane, .scroll-pane .viewport, #text, #text .content, #imageButton { -fx-background-color: transparent; } -#nameField, #textArea, #noteItemName +#nameField, #text, #noteItemName { -fx-text-fill: white; -fx-font-family: 'Cutive Mono'; @@ -31,7 +31,11 @@ { -fx-font-size: 24px; } -#textArea +#text { -fx-font-size: 20px; +} +#separator +{ + -fx-background-color: rgba(0, 0, 0, 0.15); } \ No newline at end of file