/** * Create the JScroll pane for the scene's text with the appropriate settings for it to be * displayed correctly * * @return - the JScrollPane for the scene text */ private JScrollPane generateTextPane() { tcText = SwingUtil.createTextComponent(mainFrame); tcText.setName(CN_TEXT); tcText.setText(scene.getText()); tcText.setDragEnabled(true); tcText.addFocusListener(this); SwingUtil.addCtrlEnterAction(tcText, new EditEntityAction(mainFrame, scene, true)); return new JScrollPane(tcText); }
/** * References checked: 8.10.2003 (2.0b2) * * @param editorType editor type, one of this constants * <UL> * <LI>EDITOR_TYPE_DEFAULT * <LI>EDITOR_TYPE_STYLED * <LI>EDITOR_TYPE_SINGLE_LINE * </UL> * * @param controler if not <code>null</code> for <code>EDITOR_TYPE_STYLED</code> editors a toolbar * is created * @see PresentationDetail#PresentationDetail */ TextEditorPanel( int editorType, GraphPanelControler controler, boolean showToolbar, PresentationDetail detail) { this.editorType = editorType; this.controler = controler; this.showToolbar = showToolbar; this.detail = detail; setLayout(new BorderLayout()); // --- build this text editor panel --- switch (editorType) { case EDITOR_TYPE_DEFAULT: textComponent = new JTextArea(); add(new JScrollPane(textComponent)); break; case EDITOR_TYPE_STYLED: textComponent = new JTextPane(); textComponent.setTransferHandler(new TextTransferHandler()); // ### requires Java 1.4 // --- add toolbar --- if (showToolbar) { JPanel bar = new JPanel(); Hashtable actions = DeepaMehtaClientUtils.createActionTable(textComponent); bar.setBackground(COLOR_PROPERTY_PANEL); toolbarButtons = new JButton[3]; addButton(bar, new StyledEditorKit.BoldAction(), actions, controler.boldIcon()); addButton(bar, new StyledEditorKit.ItalicAction(), actions, controler.italicIcon()); addButton(bar, new StyledEditorKit.UnderlineAction(), actions, controler.underlineIcon()); // ### addButton(bar, "H1", CMD_SET_HEADLINE1); // ### addButton(bar, "H2", CMD_SET_HEADLINE2); add(bar, BorderLayout.SOUTH); } add(new JScrollPane(textComponent)); break; case EDITOR_TYPE_SINGLE_LINE: textComponent = new JTextField(); ((JTextField) textComponent).addActionListener(this); add(textComponent); break; default: throw new DeepaMehtaException("unexpected text editor type: " + editorType); } // --- enable automatic drag and drop support --- try { textComponent.setDragEnabled(true); } catch (NoSuchMethodError e) { // requires JDK 1.4 ### } }
/** Create an editor to represent the given document. */ protected JTextComponent createEditor() { JTextComponent c = new JTextArea(); c.setDragEnabled(true); c.setFont(new Font("monospaced", Font.PLAIN, 12)); return c; }
@Override public void refresh() { MigLayout layout = new MigLayout("fill,flowy,insets 4", "[]", "[][grow]"); setLayout(layout); setPreferredSize(new Dimension(size, size)); setComponentPopupMenu(EntityUtil.createPopupMenu(mainFrame, scene)); removeAll(); // set dotted border for scenes of other parts setBorder(SwingUtil.getBorderDefault()); if (scene.hasChapter()) { if (!scene.getChapter().getPart().getId().equals(mainFrame.getCurrentPart().getId())) { setBorder(SwingUtil.getBorderDot()); } } // strand links StrandLinksPanel strandLinksPanel = new StrandLinksPanel(mainFrame, scene, true); // person links PersonLinksPanel personLinksPanel = new PersonLinksPanel(mainFrame, scene); // location links LocationLinksPanel locationLinksPanel = new LocationLinksPanel(mainFrame, scene); // location links ItemLinksPanel itemLinksPanel = new ItemLinksPanel(mainFrame, scene); // button new btNew = getNewButton(); btNew.setSize20x20(); // btNew.setName(COMP_NAME_BT_NEW); // button remove btDelete = getDeleteButton(); btDelete.setSize20x20(); // btDelete.setName(COMP_NAME_BT_REMOVE); // button edit btEdit = getEditButton(); btEdit.setSize20x20(); // btEdit.setName(COMP_NAME_BT_EDIT); // chapter and scene number lbSceneNo = new JLabel("", SwingConstants.CENTER); lbSceneNo.setText(scene.getChapterSceneNo(false)); lbSceneNo.setToolTipText(scene.getChapterSceneToolTip()); lbSceneNo.setOpaque(true); lbSceneNo.setBackground(Color.white); // status lbStatus = new SceneStateLabel(scene.getSceneState(), true); // informational lbInformational = new JLabel(""); if (scene.getInformative()) { lbInformational.setIcon(I18N.getIcon("icon.small.info")); lbInformational.setToolTipText(I18N.getMsg("msg.common.informative")); } // scene time lbTime = new JLabel(); if (scene.hasSceneTs()) { if (!DateUtil.isZeroTimeDate(scene.getSceneTs())) { lbTime.setText(DateUtil.simpleDateTimeToString(this.scene.getSceneTs())); } } // title taTitle = new UndoableTextArea(); taTitle.setName(CN_TITLE); taTitle.setText(scene.getTitle()); taTitle.setLineWrap(true); taTitle.setWrapStyleWord(true); taTitle.setDragEnabled(true); taTitle.setCaretPosition(0); taTitle.getUndoManager().discardAllEdits(); taTitle.addFocusListener(this); SwingUtil.addCtrlEnterAction(taTitle, new EditEntityAction(mainFrame, scene, true)); JScrollPane spTitle = new JScrollPane(taTitle); spTitle.setPreferredSize(new Dimension(50, 35)); // text tcText = SwingUtil.createTextComponent(mainFrame); tcText.setName(CN_TEXT); tcText.setText(scene.getText()); tcText.setDragEnabled(true); tcText.addFocusListener(this); SwingUtil.addCtrlEnterAction(tcText, new EditEntityAction(mainFrame, scene, true)); JScrollPane spText = new JScrollPane(tcText); spText.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); spText.setPreferredSize(new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE)); // layout // button panel JPanel buttonPanel = new JPanel(new MigLayout("flowy,insets 0")); buttonPanel.setName("buttonpanel"); buttonPanel.setOpaque(false); buttonPanel.add(btEdit); buttonPanel.add(btDelete); buttonPanel.add(btNew); upperPanel = new JPanel(new MigLayout("ins 0", "[][grow][]", "[top][top][top]")); upperPanel.setName(CN_UPPER_PANEL); upperPanel.setOpaque(false); upperPanel.add(lbSceneNo, "grow,width pref+10px,split 3"); upperPanel.add(lbStatus); upperPanel.add(lbInformational); upperPanel.add(strandLinksPanel, "grow"); upperPanel.add(buttonPanel, "spany 4,wrap"); JScrollPane scroller = new JScrollPane( personLinksPanel, JScrollPane.VERTICAL_SCROLLBAR_NEVER, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); scroller.setMinimumSize(new Dimension(20, 16)); scroller.setOpaque(false); scroller.getViewport().setOpaque(false); scroller.setBorder(null); upperPanel.add(scroller, "spanx 2,growx,wrap"); upperPanel.add(locationLinksPanel, "spanx 2,grow,wrap"); upperPanel.add(lbTime); // main panel add(upperPanel, "growx"); add(spTitle, "growx, h 35!"); add(spText, "grow"); revalidate(); repaint(); tcText.setCaretPosition(0); taTitle.setCaretPosition(0); }