diff --git a/config/database/hsql/create-schemas.sql b/config/database/hsql/create-schemas.sql index 8a4297b3..ca5ec213 100644 --- a/config/database/hsql/create-schemas.sql +++ b/config/database/hsql/create-schemas.sql @@ -1,7 +1,8 @@ CREATE TABLE COLLABORATOR ( id INTEGER NOT NULL IDENTITY, email VARCHAR(255) NOT NULL, - creation_date DATE); + creation_date DATE +); CREATE TABLE USER ( colaborator_id INTEGER NOT NULL IDENTITY, @@ -31,22 +32,40 @@ CREATE TABLE MINDMAP ( --FOREIGN KEY(creator_id) REFERENCES USER(colaborator_id) ); -CREATE TABLE MINDMAP_HISTORY -(id INTEGER NOT NULL IDENTITY, +CREATE TABLE LABEL ( + id INTEGER NOT NULL PRIMARY KEY IDENTITY, + title VARCHAR(30), + creator_id INTEGER NOT NULL, + parent_label_id INTEGER, + color VARCHAR(7) NOT NULL + --FOREIGN KEY (creator_id) REFERENCES USER (colaborator_id) +); + +CREATE TABLE R_LABEL_MINDMAP ( + mindmap_id INTEGER NOT NULL, + label_id INTEGER NOT NULL, + PRIMARY KEY (mindmap_id, label_id), + FOREIGN KEY (mindmap_id) REFERENCES MINDMAP (id), + FOREIGN KEY (label_id) REFERENCES LABEL (id) ON DELETE CASCADE ON UPDATE NO ACTION +); + +CREATE TABLE MINDMAP_HISTORY ( + id INTEGER NOT NULL IDENTITY, xml LONGVARBINARY NOT NULL, mindmap_id INTEGER NOT NULL, creation_date DATETIME, editor_id INTEGER NOT NULL, - FOREIGN KEY (mindmap_id) REFERENCES MINDMAP (id)); + FOREIGN KEY (mindmap_id) REFERENCES MINDMAP (id) +); -CREATE TABLE COLLABORATION_PROPERTIES -(id INTEGER NOT NULL IDENTITY, +CREATE TABLE COLLABORATION_PROPERTIES ( + id INTEGER NOT NULL IDENTITY, starred BOOLEAN NOT NULL, mindmap_properties VARCHAR(512) ); -CREATE TABLE COLLABORATION -(id INTEGER NOT NULL IDENTITY, +CREATE TABLE COLLABORATION ( + id INTEGER NOT NULL IDENTITY, colaborator_id INTEGER NOT NULL, properties_id INTEGER NOT NULL, mindmap_id INTEGER NOT NULL, @@ -57,8 +76,8 @@ CREATE TABLE COLLABORATION ); -CREATE TABLE TAG -(id INTEGER NOT NULL IDENTITY, +CREATE TABLE TAG ( + id INTEGER NOT NULL IDENTITY, name VARCHAR(255) NOT NULL, user_id INTEGER NOT NULL, --FOREIGN KEY(user_id) REFERENCES USER(colaborator_id) diff --git a/config/database/hsql/drop-schemas.sql b/config/database/hsql/drop-schemas.sql index a0de242f..701bb2c8 100644 --- a/config/database/hsql/drop-schemas.sql +++ b/config/database/hsql/drop-schemas.sql @@ -3,6 +3,8 @@ DROP TABLE IF EXISTS TAG; DROP TABLE IF EXISTS COLLABORATION; DROP TABLE IF EXISTS COLLABORATION_PROPERTIES; DROP TABLE IF EXISTS MINDMAP_HISTORY; +DROP TABLE IF EXISTS R_LABEL_MINDMAP; +DROP TABLE IF EXISTS LABEL; DROP TABLE IF EXISTS MINDMAP; DROP TABLE IF EXISTS USER; DROP TABLE IF EXISTS COLLABORATOR; diff --git a/config/database/mysql/create-schemas.sql b/config/database/mysql/create-schemas.sql index 8831d086..bf12dbf1 100644 --- a/config/database/mysql/create-schemas.sql +++ b/config/database/mysql/create-schemas.sql @@ -51,6 +51,30 @@ CREATE TABLE MINDMAP ( ) CHARACTER SET utf8; +CREATE TABLE LABEL ( + id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, + title VARCHAR(30) + CHARACTER SET utf8 NOT NULL, + creator_id INTEGER NOT NULL, + parent_label_id INTEGER, + color VARCHAR(7) NOT NULL, + FOREIGN KEY (creator_id) REFERENCES USER (colaborator_id), + FOREIGN KEY (parent_label_id) REFERENCES LABEL (id) + ON DELETE CASCADE + ON UPDATE NO ACTION +) + CHARACTER SET utf8; + +CREATE TABLE R_LABEL_MINDMAP ( + mindmap_id INTEGER NOT NULL, + label_id INTEGER NOT NULL, + PRIMARY KEY (mindmap_id, label_id), + FOREIGN KEY (mindmap_id) REFERENCES MINDMAP (id), + FOREIGN KEY (label_id) REFERENCES LABEL (id) + ON DELETE CASCADE + ON UPDATE NO ACTION +) + CHARACTER SET utf8; CREATE TABLE MINDMAP_HISTORY (id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, diff --git a/config/database/mysql/drop-schemas.sql b/config/database/mysql/drop-schemas.sql index 6a5af0e5..40880f18 100644 --- a/config/database/mysql/drop-schemas.sql +++ b/config/database/mysql/drop-schemas.sql @@ -3,7 +3,9 @@ DROP TABLE IF EXISTS ACCESS_AUDITORY; DROP TABLE IF EXISTS COLLABORATION; DROP TABLE IF EXISTS COLLABORATION_PROPERTIES; DROP TABLE IF EXISTS MINDMAP_HISTORY; +DROP TABLE IF EXISTS LABEL; DROP TABLE IF EXISTS MINDMAP; +DROP TABLE IF EXISTS R_LABEL_MINDMAP DROP TABLE IF EXISTS USER; DROP TABLE IF EXISTS COLLABORATOR; COMMIT; \ No newline at end of file diff --git a/config/database/mysql/v3.1-to-v3.3.sql b/config/database/mysql/v3.1-to-v3.3.sql index c3570244..6d16873e 100644 --- a/config/database/mysql/v3.1-to-v3.3.sql +++ b/config/database/mysql/v3.1-to-v3.3.sql @@ -4,4 +4,31 @@ ALTER TABLE `ACCESS_AUDITORY` ADD CONSTRAINT FOREIGN KEY (user_id) REFERENCES USER (colaborator_id) ON DELETE CASCADE - ON UPDATE NO ACTION; \ No newline at end of file + ON UPDATE NO ACTION; + +CREATE TABLE LABEL ( + id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, + title VARCHAR(30) + CHARACTER SET utf8 NOT NULL, + creator_id INTEGER NOT NULL, + parent_label_id INTEGER, + color VARCHAR(7) NOT NULL, + FOREIGN KEY (creator_id) REFERENCES USER (colaborator_id), + FOREIGN KEY (parent_label_id) REFERENCES LABEL (id) + ON DELETE CASCADE + ON UPDATE NO ACTION +) + CHARACTER SET utf8; + +CREATE TABLE R_LABEL_MINDMAP ( + mindmap_id INTEGER NOT NULL, + label_id INTEGER NOT NULL, + PRIMARY KEY (mindmap_id, label_id), + FOREIGN KEY (mindmap_id) REFERENCES MINDMAP (id), + FOREIGN KEY (label_id) REFERENCES LABEL (id) + ON DELETE CASCADE + ON UPDATE NO ACTION +) + CHARACTER SET utf8; + + diff --git a/config/database/postgres/create-schemas.sql b/config/database/postgres/create-schemas.sql index 544f11f3..acc839bd 100644 --- a/config/database/postgres/create-schemas.sql +++ b/config/database/postgres/create-schemas.sql @@ -18,6 +18,22 @@ CREATE TABLE "user" ( FOREIGN KEY (colaborator_id) REFERENCES COLLABORATOR (id) ON DELETE CASCADE ON UPDATE NO ACTION ); +CREATE TABLE LABEL ( + id INTEGER NOT NULL PRIMARY KEY, + title VARCHAR(255), + creator_id INTEGER NOT NULL, + parent_label_id INTEGER, + color VARCHAR(7) NOT NULL + --FOREIGN KEY (creator_id) REFERENCES USER (colaborator_id) +); + +CREATE TABLE R_LABEL_MINDMAP ( + mindmap_id INTEGER NOT NULL, + label_id INTEGER NOT NULL, + PRIMARY KEY (mindmap_id, label_id), + FOREIGN KEY (mindmap_id) REFERENCES MINDMAP (id), + FOREIGN KEY (label_id) REFERENCES LABEL (id) ON DELETE CASCADE ON UPDATE NO ACTION +); CREATE TABLE MINDMAP ( id SERIAL NOT NULL PRIMARY KEY, diff --git a/config/database/postgres/drop-schemas.sql b/config/database/postgres/drop-schemas.sql index ea2ddf18..0db61fdf 100644 --- a/config/database/postgres/drop-schemas.sql +++ b/config/database/postgres/drop-schemas.sql @@ -3,6 +3,8 @@ DROP TABLE ACCESS_AUDITORY; DROP TABLE COLLABORATION; DROP TABLE COLLABORATION_PROPERTIES; DROP TABLE MINDMAP_HISTORY; +DROP TABLE R_LABEL_MINDMAP; +DROP TABLE LABEL; DROP TABLE MINDMAP; DROP TABLE "user"; DROP TABLE COLLABORATOR; diff --git a/wise-webapp/pom.xml b/wise-webapp/pom.xml index fd873ba1..94f9fe8d 100644 --- a/wise-webapp/pom.xml +++ b/wise-webapp/pom.xml @@ -594,7 +594,6 @@ - org.apache.maven.plugins maven-dependency-plugin diff --git a/wise-webapp/src/main/java/com/wisemapping/dao/LabelManager.java b/wise-webapp/src/main/java/com/wisemapping/dao/LabelManager.java new file mode 100644 index 00000000..7d0363dc --- /dev/null +++ b/wise-webapp/src/main/java/com/wisemapping/dao/LabelManager.java @@ -0,0 +1,26 @@ +package com.wisemapping.dao; + +import com.wisemapping.model.Label; +import com.wisemapping.model.User; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +public interface LabelManager { + + void addLabel(@NotNull final Label label); + + void saveLabel(@NotNull final Label label); + + @NotNull + List