summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKuersat Akmaz2020-10-17 21:47:52 +0200
committerKuersat Akmaz2020-10-17 21:47:52 +0200
commit90f96226cec258f5b24cc5ec7349aa9db9ad0944 (patch)
tree6021499faa79068f305db1153f600591ad851f09
parent[client] added small html Editor in LectureCreationpage (diff)
downloadtutor-module-90f96226cec258f5b24cc5ec7349aa9db9ad0944.tar.gz
tutor-module-90f96226cec258f5b24cc5ec7349aa9db9ad0944.tar.xz
tutor-module-90f96226cec258f5b24cc5ec7349aa9db9ad0944.zip
[client] Added Html editor into ImageCreationPage
Issue : #3732
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java3
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageDetailsWindowLayout.java75
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ImageMetaDataPageLayout.java45
3 files changed, 97 insertions, 26 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java
index 211ff1b7..c8d3b5a2 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java
@@ -821,6 +821,9 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe
editable = editable && (ImagePerms.canEdit(image) || ImagePerms.canAdmin(image));
txtTitle.setEditable(editable);
txtDescription.setEditable(editable);
+ btnBold.setEnabled(editable);
+ btnItalic.setEnabled(editable);
+ btnUnderline.setEnabled(editable);
txtTags.setEditable(editable);
cboOperatingSystem.setEnabled(editable);
// cboShareMode.setEnabled(editable);
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageDetailsWindowLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageDetailsWindowLayout.java
index 2792e9fd..040fffa5 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageDetailsWindowLayout.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageDetailsWindowLayout.java
@@ -6,6 +6,7 @@ import java.awt.Font;
import java.awt.Frame;
import java.awt.GridBagConstraints;
import java.awt.Insets;
+import java.awt.GridLayout;
import javax.swing.BorderFactory;
import javax.swing.Box;
@@ -13,6 +14,7 @@ import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JDialog;
+import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
@@ -20,6 +22,8 @@ import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
+import javax.swing.text.StyledEditorKit;
+import javax.swing.JEditorPane;
import org.openslx.bwlp.thrift.iface.OperatingSystem;
import org.openslx.bwlp.thrift.iface.ShareMode;
@@ -40,7 +44,7 @@ public abstract class ImageDetailsWindowLayout extends JDialog {
private static final int ICON_SIZE_Y = 24;
protected final JTextField txtTitle;
- protected final JTextArea txtDescription;
+ protected final JEditorPane txtDescription;
protected QLabel lblError;
protected final PersonLabel lblOwner;
@@ -74,6 +78,10 @@ public abstract class ImageDetailsWindowLayout extends JDialog {
protected final ImageVersionTable tblVersions;
protected final QScrollPane scpVersions;
+ protected final JButton btnBold;
+ protected final JButton btnItalic;
+ protected final JButton btnUnderline;
+
protected JTabbedPane pnlTabs;
protected ImagePermissionConfigurator ctlImagePermissionConfigurator;
@@ -88,9 +96,11 @@ public abstract class ImageDetailsWindowLayout extends JDialog {
setPreferredSize(Gui.getScaledDimension(630, 680));
((JPanel) getContentPane()).setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
- /* *******************************************************************************
+ /*
+ * *****************************************************************************
+ * **
*
- * Tab: Overview
+ * Tab: Overview
*
********************************************************************************/
JPanel pnlTabOverview = new JPanel();
@@ -98,14 +108,34 @@ public abstract class ImageDetailsWindowLayout extends JDialog {
// name
txtTitle = new JTextField();
txtTitle.setFont(txtTitle.getFont().deriveFont(Font.BOLD, txtTitle.getFont().getSize2D() * 1.4f));
- //txtTitle.setMinimumSize(Gui.getScaledDimension(0, 24));
+ // txtTitle.setMinimumSize(Gui.getScaledDimension(0, 24));
grid.add(txtTitle, 3).expand(true, false).fill(true, false);
grid.nextRow();
+ // buttons for text editing
+ JPanel editingPanel = new JPanel();
+ editingPanel.setLayout(new GridLayout(1, 3));
+ JPanel emptyPanel = new JPanel();
+ grid.add(emptyPanel);
+ btnBold = new JButton(new StyledEditorKit.BoldAction());
+ btnBold.setIcon(Gui.getScaledIconResource("/img/bold.png", "B", 24, this));
+ btnBold.setText("");
+ btnItalic = new JButton(new StyledEditorKit.ItalicAction());
+ btnItalic.setIcon(Gui.getScaledIconResource("/img/italic.png", "B", 24, this));
+ btnItalic.setText("");
+ btnUnderline = new JButton(new StyledEditorKit.UnderlineAction());
+ btnUnderline.setIcon(Gui.getScaledIconResource("/img/underline.png", "B", 24, this));
+ btnUnderline.setText("");
+ editingPanel.add(btnBold);
+ editingPanel.add(btnItalic);
+ editingPanel.add(btnUnderline);
+ grid.add(editingPanel);
+ grid.add(emptyPanel);
+ grid.nextRow();
+
// description
- txtDescription = new JTextArea();
- txtDescription.setLineWrap(true);
- txtDescription.setWrapStyleWord(true);
+ txtDescription = new JEditorPane();
+ txtDescription.setContentType("text/html");
grid.add(new QLabel("Beschreibung")).anchor = GridBagConstraints.FIRST_LINE_START;
JScrollPane jsp = new JScrollPane(txtDescription, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
@@ -216,12 +246,14 @@ public abstract class ImageDetailsWindowLayout extends JDialog {
buttonBar.add(btnUploadToMaster);
grid.add(buttonBar, 3).fill(true, false).expand(true, false);
grid.nextRow();
-
+
grid.finish(false);
- /* *******************************************************************************
+ /*
+ * *****************************************************************************
+ * **
*
- * Tab: VM versions
+ * Tab: VM versions
*
********************************************************************************/
JPanel pnlTabVersions = new JPanel();
@@ -231,14 +263,17 @@ public abstract class ImageDetailsWindowLayout extends JDialog {
grdVersions.add(scpVersions).fill(true, true).expand(true, true);
grdVersions.finish(false);
- /* *******************************************************************************
+ /*
+ * *****************************************************************************
+ * **
*
- * Tab: Permissions
+ * Tab: Permissions
*
********************************************************************************/
JPanel pnlTabPermissions = new JPanel();
ctlImagePermissionConfigurator = new ImagePermissionConfigurator();
- GridManager grdImagePermissionConfigurator = new GridManager(pnlTabPermissions, 1, false, new Insets(8, 2, 8, 2));
+ GridManager grdImagePermissionConfigurator = new GridManager(pnlTabPermissions, 1, false,
+ new Insets(8, 2, 8, 2));
grdImagePermissionConfigurator.add(ctlImagePermissionConfigurator).fill(true, true).expand(true, true);
// Panel with the permissions for other users
JPanel defaultPermissionPane = new JPanel();
@@ -268,9 +303,11 @@ public abstract class ImageDetailsWindowLayout extends JDialog {
grdImagePermissionConfigurator.add(defaultPermissionPane).fill(true, false).expand(false, false);
grdImagePermissionConfigurator.finish(false);
- /* *******************************************************************************
+ /*
+ * *****************************************************************************
+ * **
*
- * Bottom panel for buttons
+ * Bottom panel for buttons
*
********************************************************************************/
JPanel pnlButtons = new JPanel();
@@ -286,16 +323,18 @@ public abstract class ImageDetailsWindowLayout extends JDialog {
pnlButtons.add(btnClose);
pnlButtons.add(btnSaveChanges);
- /* *******************************************************************************
+ /*
+ * *****************************************************************************
+ * **
*
- * Main panel containing the tabs
+ * Main panel containing the tabs
*
********************************************************************************/
pnlTabs = new JTabbedPane();
pnlTabs.addTab("Übersicht", pnlTabOverview);
pnlTabs.addTab("VM-Versionen", pnlTabVersions);
pnlTabs.addTab("Berechtigungen", pnlTabPermissions);
-
+
add(pnlTabs, BorderLayout.CENTER);
add(pnlButtons, BorderLayout.PAGE_END);
}
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ImageMetaDataPageLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ImageMetaDataPageLayout.java
index 358fdd0d..a0104ade 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ImageMetaDataPageLayout.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ImageMetaDataPageLayout.java
@@ -2,9 +2,15 @@ package org.openslx.dozmod.gui.wizard.layout;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
+import javax.swing.JEditorPane;
+import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
+import javax.swing.JButton;
+import javax.swing.text.StyledEditorKit;
+import java.awt.Dimension;
+import java.awt.GridLayout;
import org.openslx.bwlp.thrift.iface.OperatingSystem;
import org.openslx.dozmod.gui.Gui;
import org.openslx.dozmod.gui.control.ComboBox;
@@ -19,13 +25,17 @@ import org.openslx.thrifthelper.Comparators;
public abstract class ImageMetaDataPageLayout extends WizardPage {
protected final JComboBox<OperatingSystem> cboOperatingSystem;
- protected final JTextArea txtDescription;
+ protected final JEditorPane txtDescription;
protected final JTextArea startCommand;
protected final QLabel sCommandCaption;
protected final JScrollPane startCommandPane;
protected final JCheckBox chkLicenseRestricted;
protected final JCheckBox chkIsTemplate;
+ protected final JButton btnBold;
+ protected final JButton btnItalic;
+ protected final JButton btnUnderline;
+
/**
* wizard page for entering image data at creating or editing an image
*
@@ -62,16 +72,35 @@ public abstract class ImageMetaDataPageLayout extends WizardPage {
grid.add(startCommandPane).fill(true, false).expand(true, false);
grid.nextRow();
+ // buttons for text editing
+ JPanel editingPanel = new JPanel();
+ editingPanel.setLayout(new GridLayout(1, 3));
+ JPanel emptyPanel = new JPanel();
+ grid.add(emptyPanel);
+ btnBold = new JButton(new StyledEditorKit.BoldAction());
+ btnBold.setIcon(Gui.getScaledIconResource("/img/bold.png", "B", 24, this));
+ btnBold.setText("");
+ btnItalic = new JButton(new StyledEditorKit.ItalicAction());
+ btnItalic.setIcon(Gui.getScaledIconResource("/img/italic.png", "B", 24, this));
+ btnItalic.setText("");
+ btnUnderline = new JButton(new StyledEditorKit.UnderlineAction());
+ btnUnderline.setIcon(Gui.getScaledIconResource("/img/underline.png", "B", 24, this));
+ btnUnderline.setText("");
+ editingPanel.add(btnBold);
+ editingPanel.add(btnItalic);
+ editingPanel.add(btnUnderline);
+ grid.add(editingPanel);
+
+ grid.nextRow();
+
+ // description
QLabel descriptionCaption = new QLabel("Beschreibung");
- txtDescription = new JTextArea(5, 50);
- txtDescription.setMinimumSize(Gui.getScaledDimension(0, 70));
- txtDescription.setLineWrap(true);
- txtDescription.setWrapStyleWord(true);
- JScrollPane descPane = new JScrollPane(txtDescription, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
+ txtDescription = new JEditorPane();
+ txtDescription.setContentType("text/html");
+ JScrollPane descPane = new JScrollPane(txtDescription, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
- descPane.setMinimumSize(txtDescription.getMinimumSize());
grid.add(descriptionCaption);
- grid.add(descPane).fill(true, false).expand(true, false);
+ grid.add(descPane).fill(true, true).expand(true, true);
grid.nextRow();
chkLicenseRestricted = new JCheckBox("VM enthält lizenzpflichtige Software");