List of usage examples for com.lowagie.text Font BOLDITALIC
int BOLDITALIC
To view the source code for com.lowagie.text Font BOLDITALIC.
Click Source Link
From source file:de.tr1.cooperator.manager.web.CreateSubscriberListAction.java
License:Open Source License
/** * This method is called by the struts-framework if the submit-button is pressed. * It creates a PDF-File and puts in into the output-stream of the response. *//*w w w . j a v a 2s. co m*/ public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { CreateSubscriberListForm myForm = (CreateSubscriberListForm) form; boolean bSortByName; if (myForm.getSortBy().equals(myForm.SORTBYPN)) bSortByName = false; else bSortByName = true; //create Collection for the results... Event eEvent = EventManager.getInstance().getEventByID(myForm.getEventID()); Collection cSubscriberList = UserManager.getInstance().getUsersByCollection(eEvent.getSubscriberList()); Collection cExamResults = EventResultManager.getInstance().getResults(eEvent.getID()); Iterator cSubscriberListIT = cSubscriberList.iterator(); Collection cSubscriberResultList = new ArrayList(); while (cSubscriberListIT.hasNext()) { User CurUser = (User) cSubscriberListIT.next(); String UserPNR = CurUser.getPersonalNumber(); Iterator cExamResultsIT = cExamResults.iterator(); ExamResult curExamResult = null; String ResultUserPNR = null; while (cExamResultsIT.hasNext()) { curExamResult = (ExamResult) cExamResultsIT.next(); ResultUserPNR = curExamResult.getUserPersonalNumber(); if (UserPNR.equals(ResultUserPNR)) break; } if (UserPNR.equals(ResultUserPNR)) { if (bSortByName) { UserResultSortByName URS = new UserResultSortByName(CurUser, "" + curExamResult.getResult()); cSubscriberResultList.add(URS); } else { UserResultSortByPersonalNumber URS = new UserResultSortByPersonalNumber(CurUser, "" + curExamResult.getResult()); cSubscriberResultList.add(URS); } } else { if (bSortByName) { UserResultSortByName URS = new UserResultSortByName(CurUser, "-"); cSubscriberResultList.add(URS); } else { UserResultSortByPersonalNumber URS = new UserResultSortByPersonalNumber(CurUser, "-"); cSubscriberResultList.add(URS); } } } //sort List Collections.sort((List) cSubscriberResultList); BaseFont bf; //36pt = 0.5inch Document document = new Document(PageSize.A4, 36, 36, 72, 72); try { bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED); } catch (Exception e) { Log.addLog("CreateSubscriberListAction: Error creating BaseFont: " + e); //2do: add ErrorMessage and return to inputFormular! return mapping.findForward("GeneralFailure"); } //calculate the number of cols and their width int cols = 0; ArrayList alWidth = new ArrayList(); float boldItalicFactor = 1.2f; if (myForm.getShowNumber()) alWidth.add(new Float(boldItalicFactor * bf.getWidthPoint(TABLEHEADER_NUMBER, TABLEHEADER_FONTSIZE))); if (myForm.getShowPersonalNumber()) alWidth.add(new Float( boldItalicFactor * bf.getWidthPoint(TABLEHEADER_PERSONALNUMBER, TABLEHEADER_FONTSIZE))); if (myForm.getShowName()) alWidth.add(new Float(boldItalicFactor * bf.getWidthPoint(TABLEHEADER_NAME, TABLEHEADER_FONTSIZE))); if (myForm.getShowEmail()) alWidth.add(new Float(boldItalicFactor * bf.getWidthPoint(TABLEHEADER_EMAIL, TABLEHEADER_FONTSIZE))); if (myForm.getShowResult()) alWidth.add(new Float(boldItalicFactor * bf.getWidthPoint(TABLEHEADER_RESULT, TABLEHEADER_FONTSIZE))); if (myForm.getAddInfoField()) alWidth.add(new Float(boldItalicFactor * bf.getWidthPoint(TABLEHEADER_INFO, TABLEHEADER_FONTSIZE))); if (myForm.getAddSignField()) alWidth.add(new Float(boldItalicFactor * bf.getWidthPoint(TABLEHEADER_SIGN, TABLEHEADER_FONTSIZE))); cols = alWidth.size(); float totalWidth = 0; //calculate the whole length Iterator alIterator = alWidth.iterator(); for (; alIterator.hasNext(); totalWidth += ((Float) alIterator.next()).floatValue()) ; //calculate relativ width for the table float[] width = new float[cols]; alIterator = alWidth.iterator(); int i = 0; while (alIterator.hasNext()) { float pixLength = ((Float) alIterator.next()).floatValue(); //alWidthRelativ.add( new Float( pixLength/totalWidth ) ); width[i] = pixLength / totalWidth; i++; } //needed for the shrink (enlarge?) float shrinkFactor; try { //1st: set correct outputstream PdfWriter writer = PdfWriter.getInstance(document, response.getOutputStream()); //1.5st: set content-stuff response.setContentType("application/pdf"); //2nd: set EventManager for PageEvents to Helper writer.setPageEvent( new CreateSubscriberListActionHelper(myForm.getHeaderLeft(), myForm.getHeaderRight())); //3rd: open document for editing the content document.open(); //4th: add content Phrase pInfoText = new Phrase(myForm.getInfoText(), new Font(bf, 12, Font.BOLD)); document.add(pInfoText); //PdfPTable( cols ) PdfPTable table = new PdfPTable(width); float documentWidth = document.right() - document.left(); if (documentWidth < totalWidth) { table.setTotalWidth(documentWidth); shrinkFactor = documentWidth / totalWidth; } else { table.setTotalWidth(totalWidth); shrinkFactor = 1; } table.setLockedWidth(true); Font headerFont = new Font(bf, TABLEHEADER_FONTSIZE * shrinkFactor, Font.BOLDITALIC); Font cellFont = new Font(bf, TABLECELL_FONTSIZE * shrinkFactor, Font.NORMAL); if (myForm.getShowNumber()) table.addCell(new Phrase(TABLEHEADER_NUMBER, headerFont)); if (myForm.getShowPersonalNumber()) table.addCell(new Phrase(TABLEHEADER_PERSONALNUMBER, headerFont)); if (myForm.getShowName()) table.addCell(new Phrase(TABLEHEADER_NAME, headerFont)); if (myForm.getShowEmail()) table.addCell(new Phrase(TABLEHEADER_EMAIL, headerFont)); if (myForm.getShowResult()) table.addCell(new Phrase(TABLEHEADER_RESULT, headerFont)); if (myForm.getAddInfoField()) table.addCell(new Phrase(TABLEHEADER_INFO, headerFont)); if (myForm.getAddSignField()) table.addCell(new Phrase(TABLEHEADER_SIGN, headerFont)); //fill table Iterator iSRL = cSubscriberResultList.iterator(); int counter = 1; while (iSRL.hasNext()) { UserResult curResult = (UserResult) iSRL.next(); table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_RIGHT); if (myForm.getShowNumber()) table.addCell(new Phrase("" + counter++, cellFont)); table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER); if (myForm.getShowPersonalNumber()) table.addCell(new Phrase(curResult.getPersonalNumber(), cellFont)); table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_LEFT); if (myForm.getShowName()) table.addCell(new Phrase(curResult.getSurname() + ", " + curResult.getFirstName(), cellFont)); if (myForm.getShowEmail()) table.addCell(new Phrase(curResult.getEmailAddress(), cellFont)); if (myForm.getShowResult()) table.addCell(new Phrase(curResult.getResult(), cellFont)); if (myForm.getAddInfoField()) table.addCell(new Phrase("", cellFont)); if (myForm.getAddSignField()) table.addCell(new Phrase("", cellFont)); } //set how many rows are header... table.setHeaderRows(1); document.add(table); //5th: close document, write the output to the stream... document.close(); } catch (Exception de) { Log.addLog("CreateSubscriberListAction: Error creating PDF: " + de); } //we dont need to return a forward, because we write directly to the outputstream! return null; }
From source file:de.unigoettingen.sub.commons.contentlib.pdflib.PDFTitlePage.java
License:Apache License
/************************************************************************************ * render paragraph into title page/* ww w . j a v a 2s.c om*/ * * @param pdftpp given {@link PDFTitlePageParagraph} to render * @param pdfdoc given {@link com.lowagie.text.Document} where to render * @throws DocumentException ************************************************************************************/ private void renderParagraph(PDFTitlePageParagraph pdftpp, com.lowagie.text.Document pdfdoc) throws DocumentException { String text = pdftpp.getContent(); if (text == null) { text = ""; } int fontstyle = Font.NORMAL; if (pdftpp.getFonttype().equals("bold")) { fontstyle = Font.BOLD; } if (pdftpp.getFonttype().equals("italic")) { fontstyle = Font.ITALIC; } if (pdftpp.getFonttype().equals("bolditalic")) { fontstyle = Font.BOLDITALIC; } if (pdftpp.getFonttype().equals("underline")) { fontstyle = Font.UNDERLINE; } if (pdftpp.getFonttype().equals("strikethru")) { fontstyle = Font.STRIKETHRU; } // create BaseFont for embedding try { Font font = FontFactory.getFont("Arial", BaseFont.CP1252, BaseFont.EMBEDDED, pdftpp.getFontsize(), fontstyle); Paragraph p2 = new Paragraph(new Chunk(text, font)); // Paragraph p2=new Paragraph(text, // FontFactory.getFont(FontFactory.TIMES_ROMAN, 12)); pdfdoc.add(p2); } catch (Exception e) { LOGGER.error("error occured while generating paragraph for titlepage", e); } }
From source file:fr.aliasource.webmail.server.export.ConversationPdfEventHandler.java
License:GNU General Public License
/** * @see com.lowagie.text.pdf.PdfPageEventHelper#onOpenDocument(com.lowagie.text.pdf.PdfWriter, * com.lowagie.text.Document)/*from ww w . jav a 2s. c om*/ */ public void onOpenDocument(PdfWriter writer, Document document) { try { headerImage = Image.getInstance(getLogoUrl()); table = new PdfPTable(new float[] { 1f, 2f }); Phrase p = new Phrase(); Chunk ck = new Chunk(cr.getTitle(), new Font(Font.HELVETICA, 16, Font.BOLD)); p.add(ck); p.add(Chunk.NEWLINE); ck = new Chunk(ConversationExporter.formatName(account), new Font(Font.HELVETICA, 12, Font.BOLDITALIC)); p.add(ck); p.add(Chunk.NEWLINE); ck = new Chunk(cm.length + " messages", new Font(Font.HELVETICA, 10)); p.add(ck); table.getDefaultCell().setBorder(0); table.addCell(new Phrase(new Chunk(headerImage, 0, 0))); table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_RIGHT); table.addCell(p); // initialization of the template tpl = writer.getDirectContent().createTemplate(100, 100); tpl.setBoundingBox(new Rectangle(-20, -20, 100, 100)); // initialization of the font helv = BaseFont.createFont("Helvetica", BaseFont.WINANSI, false); } catch (Exception e) { throw new ExceptionConverter(e); } }
From source file:ilarkesto.integration.itext.Paragraph.java
License:Open Source License
private int createStyle(FontStyle fontStyle) { int style = Font.NORMAL; if (fontStyle.isItalic() && fontStyle.isBold()) { style = Font.BOLDITALIC; } else if (fontStyle.isItalic()) { style = Font.ITALIC;/*from ww w . j a va 2 s. c o m*/ } else if (fontStyle.isBold()) { style = Font.BOLD; } return style; }
From source file:include.nseer_cookie.MakePdf.java
License:Open Source License
public void make(String database, String tablename, String sql1, String sql2, String filename, int everypage, HttpSession session) {/* ww w . j a v a2 s . c o m*/ try { nseer_db aaa = new nseer_db(database); nseer_db demo_db = new nseer_db(database); ServletContext context = session.getServletContext(); String path = context.getRealPath("/"); Masking reader = new Masking(configFile); Vector columnNames = new Vector(); Vector tables = reader.getTableNicks(); Iterator loop = tables.iterator(); while (loop.hasNext()) { String tablenick = (String) loop.next(); columnNames = reader.getColumnNames(tablenick); } int cpage = 1; //? int spage = 1; int ipage = everypage; String pagesql = sql1; //? ResultSet pagers = demo_db.executeQuery(pagesql); pagers.next(); int allCol = pagers.getInt("A"); allpage = (int) Math.ceil((allCol + ipage - 1) / ipage); // for (int m = 1; m <= allpage; m++) { spage = (m - 1) * ipage; String sql = sql2 + " limit " + spage + "," + ipage; ResultSet bbb = aaa.executeQuery(sql); //ResultSetMetaData tt=bbb.getMetaData(); // int b = columnNames.size(); // int a = 0; while (bbb.next()) { a++; } // bbb.first(); // ?? Rectangle rectPageSize = new Rectangle(PageSize.A4);// rectPageSize = rectPageSize.rotate(); Document document = new Document(rectPageSize, 20, 20, 20, 20); //? Document PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(path + filename + m + ".pdf")); //?PDF?? document.open(); // BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); //? com.lowagie.text.Font FontChinese = new com.lowagie.text.Font(bfChinese, 8, com.lowagie.text.Font.NORMAL); // Paragraph title1 = new Paragraph("nseer ERP", FontFactory.getFont(FontFactory.HELVETICA, 18, Font.BOLDITALIC)); Chapter chapter1 = new Chapter(title1, 1); // ? chapter1.setNumberDepth(0); Paragraph title11 = new Paragraph(tablename, FontFactory.getFont(FontFactory.HELVETICA, 16, Font.BOLD)); Section section1 = chapter1.addSection(title11); //? Table t = new Table(b, a); // ? t.setPadding(1); // t.setSpacing(0); // ? t.setBorderWidth(1); // do { // // for (int k = 0; k < b; k++) { // Cell cell = new Cell( new Paragraph(bbb.getString((String) columnNames.elementAt(k)), FontChinese)); //? // t.addCell(cell); // ? // } // } while (bbb.next()); // section1.add(t); // document.add(chapter1); // document.close(); } // ? } catch (Exception pp) { pp.printStackTrace(); } }
From source file:mesquite.lib.MesquitePDFFile.java
License:Open Source License
/** @arg s String holds the text that the pdf file will contain @arg font java.awt.Font the font is specified this way for compatibility with the similar method in MesquitePrintJob *//*from w w w . j a v a 2s. c o m*/ public void printText(String s, java.awt.Font font) { final String exceptionMessage = "Error, an exception occurred while creating the pdf text document: "; if (s == null || font == null) return; //do the translation from logical to physical font here //currently, the only font this method ever gets called with is "Monospaced",PLAIN,10. So the //translation effort here will be minimal int desiredFontFamily; // "Monospaced" isn't defined in com.lowagie.text.Font if (font.getFamily().equals("Monospaced")) desiredFontFamily = com.lowagie.text.Font.COURIER; else desiredFontFamily = com.lowagie.text.Font.TIMES_ROMAN; com.lowagie.text.Font textFont; switch (font.getStyle()) { case java.awt.Font.BOLD: { textFont = new com.lowagie.text.Font(desiredFontFamily, font.getSize(), com.lowagie.text.Font.BOLD); break; } case java.awt.Font.ITALIC: { textFont = new com.lowagie.text.Font(desiredFontFamily, font.getSize(), com.lowagie.text.Font.ITALIC); break; } case java.awt.Font.PLAIN: { textFont = new com.lowagie.text.Font(desiredFontFamily, font.getSize(), com.lowagie.text.Font.NORMAL); break; } default: { textFont = new com.lowagie.text.Font(desiredFontFamily, font.getSize(), com.lowagie.text.Font.BOLDITALIC); } } document = new Document(); try { PdfWriter.getInstance(document, new FileOutputStream(pdfPathString)); addMetaData(document); document.open(); document.add(new Paragraph(s, textFont)); } catch (DocumentException de) { MesquiteTrunk.mesquiteTrunk.alert(exceptionMessage + de.getMessage()); } catch (IOException ioe) { MesquiteTrunk.mesquiteTrunk.alert(exceptionMessage + ioe.getMessage()); } this.end(); }
From source file:net.sf.eclipsecs.ui.stats.export.internal.RTFStatsExporter.java
License:Open Source License
/** * {@inheritDoc}//from ww w . ja v a2 s .c om * * @see net.sf.eclipsecs.stats.export.internal.AbstractStatsExporter#doGenerate(net.sf.eclipsecs.stats.data.Stats, * java.util.List, java.io.File) */ protected void doGenerate(Stats stats, List details, File outputFile) throws StatsExporterException { File exportFile = getRealExportFile(outputFile); try { Document doc = new Document(); RtfWriter2.getInstance(doc, new FileOutputStream(exportFile)); // init the fonts mainFont = new RtfFont(getMainFontName(), getMainFontSize()); pageHeaderAndFooterFont = new RtfFont(getMainFontName(), 9, Font.BOLDITALIC, new Color(200, 200, 200)); tableHeaderAndFooterFont = new RtfFont(getMainFontName(), getMainFontSize(), Font.BOLD); // creates headers and footers createHeaderAndFooter(doc); doc.open(); // introduces the report doc.add(new Paragraph("")); String intro = NLS.bind(Messages.MarkerStatsView_lblOverviewMessage, new Object[] { new Integer(stats.getMarkerCount()), new Integer(stats.getMarkerStats().size()), new Integer(stats.getMarkerCountAll()) }); Paragraph p = new Paragraph(intro, mainFont); doc.add(p); doc.add(new Paragraph("")); // generates the summary of the stats createSummaryTable(stats, doc); // if there are details, print the details if (details.size() > 0) { try { // introduces the detail section String category = CreateStatsJob.getUnlocalizedMessage((IMarker) details.get(0)); category = CreateStatsJob.cleanMessage(category); String detailText = NLS.bind(Messages.MarkerStatsView_lblDetailMessage, new Object[] { category, new Integer(details.size()) }); p = new Paragraph(detailText, mainFont); doc.add(p); // and generates the table with the details createDetailSection(details, doc); } catch (CoreException e) { // TODO improve the message and i18n... doc.add(new Paragraph("An error occured while reading the selected markers", mainFont)); CheckstyleLog.log(e, "An error occured while reading the selected markers"); } } doc.close(); } catch (FileNotFoundException e) { throw new StatsExporterException(e); } catch (DocumentException e) { throw new StatsExporterException(e); } }
From source file:org.apache.poi.xwpf.converter.internal.itext.StyleEngineForIText.java
License:Open Source License
private FontInfos processRPR(CTRPr ctParaRPr) { FontInfos fontInfos = new FontInfos(); CTFonts fonts = ctParaRPr.getRFonts(); if (fonts != null && fonts.getAscii() != null) { // font familly fontInfos.setFontFamily(fonts.getAscii()); }/*from w w w. j a va 2 s . co m*/ boolean bold = ctParaRPr.getB() != null && STOnOff.TRUE.equals(ctParaRPr.getB().xgetVal()); boolean italic = ctParaRPr.getI() != null && STOnOff.TRUE.equals(ctParaRPr.getI().xgetVal()); if (bold && italic) { fontInfos.setFontStyle(Font.BOLDITALIC); } else if (bold) { fontInfos.setFontStyle(Font.BOLD); } else if (italic) { fontInfos.setFontStyle(Font.ITALIC); } // font size CTHpsMeasure hpsMeasure = ctParaRPr.getSz(); if (hpsMeasure != null) { STHpsMeasure measure = hpsMeasure.xgetVal(); float size = measure.getBigDecimalValue().floatValue(); // cf. http://www.schemacentral.com/sc/ooxml/t-w_ST_HpsMeasure.html fontInfos.setFontSize(size / 2); } CTUnderline underline = ctParaRPr.getU(); int style = fontInfos.getFontStyle(); if (underline != null) { STUnderline uu = underline.xgetVal(); if (STUnderline.NONE != uu.enumValue()) { style = style | Font.UNDERLINE; fontInfos.setFontStyle(style); } } // font color... CTColor ctColor = ctParaRPr.getColor(); if (ctColor != null) { STHexColor hexColor = ctColor.xgetVal(); String strText = hexColor.getStringValue(); if (!"auto".equals(strText)) { Color color = ColorRegistry.getInstance().getColor("0x" + strText); fontInfos.setFontColor(color); } } // font encoding fontInfos.setFontEncoding(options.getFontEncoding()); return fontInfos; }
From source file:org.areasy.common.doclet.document.Fonts.java
License:Open Source License
public static Font getFont(int faceType, int style, int size) { Font font = null;// w ww .j a va2 s .co m String lookup = String.valueOf(faceType); String fontFile = fontTable.getProperty(lookup); int fontStyle = Font.NORMAL; Color color = COLOR_BLACK; if ((style & LINK) != 0) { fontStyle += Font.UNDERLINE; color = COLOR_LINK; } else if ((style & UNDERLINE) != 0) fontStyle += Font.UNDERLINE; if ((style & STRIKETHROUGH) != 0) fontStyle += Font.STRIKETHRU; if (fontFile != null) { File file = new File(DefaultConfiguration.getWorkDir(), fontFile); if (file.exists() && file.isFile()) { try { String encoding = encTable.getProperty(lookup, BaseFont.CP1252); BaseFont bfComic = BaseFont.createFont(file.getAbsolutePath(), encoding, BaseFont.EMBEDDED); if ((style & AbstractConfiguration.ITALIC) > 0) { if ((style & AbstractConfiguration.BOLD) > 0) fontStyle += Font.BOLDITALIC; else fontStyle += Font.ITALIC; } else if ((style & AbstractConfiguration.BOLD) > 0) fontStyle += Font.BOLD; if (fontStyle != Font.NORMAL) font = new Font(bfComic, size, fontStyle, color); else font = new Font(bfComic, size); if (font == null) throw new IllegalArgumentException("Font null: " + fontFile); } catch (Exception e) { e.printStackTrace(); throw new IllegalArgumentException("Font unusable"); } } else DocletUtility.error("Font file not found: " + fontFile); } else { // Use predefined font String face = ""; if (faceType == TEXT_FONT) { face = FontFactory.HELVETICA; if ((style & AbstractConfiguration.ITALIC) > 0) { if ((style & AbstractConfiguration.BOLD) > 0) face = FontFactory.HELVETICA_BOLDOBLIQUE; else face = FontFactory.HELVETICA_OBLIQUE; } else if ((style & AbstractConfiguration.BOLD) > 0) face = FontFactory.HELVETICA_BOLD; } else { face = FontFactory.COURIER; if ((style & ITALIC) > 0) { if ((style & BOLD) > 0) face = FontFactory.COURIER_BOLDOBLIQUE; else face = FontFactory.COURIER_OBLIQUE; } else if ((style & BOLD) > 0) face = FontFactory.COURIER_BOLD; } if (fontStyle != Font.NORMAL) font = FontFactory.getFont(face, size, fontStyle, color); else font = FontFactory.getFont(face, size); } return font; }
From source file:org.compiere.grid.VPanel.java
License:Open Source License
/** * Add Group/*from www. j a va 2 s .c om*/ * @param fieldGroup field group * @param fieldGroupType * @return true if group added */ private boolean addGroup(String fieldGroup, String fieldGroupType) { // First time - add top if (m_oldFieldGroup == null) { m_oldFieldGroup = ""; m_oldFieldGroupType = ""; } if (fieldGroup == null || fieldGroup.length() == 0 || fieldGroup.equals(m_oldFieldGroup)) return false; //[ 1757088 ] if (m_tablist.get(fieldGroup) != null) { return false; } //[ 1757088 ] if (fieldGroupType.equals(X_AD_FieldGroup.FIELDGROUPTYPE_Tab)) { CPanel m_tab = new CPanel(); m_tab.setBackground(AdempierePLAF.getFormBackground()); String tpConstraints = defaultLayoutConstraints; MigLayout layout = new MigLayout(tpConstraints); layout.addLayoutCallback(callback); m_tab.setLayout(layout); m_tab.setName(fieldGroup); CPanel dummy = new CPanel(); dummy.setLayout(new BorderLayout()); dummy.add(m_tab, BorderLayout.NORTH); dummy.setName(m_tab.getName()); dummy.setBorder(BorderFactory.createEmptyBorder(10, 12, 0, 12)); this.add(dummy); m_tablist.put(fieldGroup, m_tab); } else if (fieldGroupType.equals(X_AD_FieldGroup.FIELDGROUPTYPE_Collapse)) { CollapsiblePanel collapsibleSection = new CollapsiblePanel(fieldGroup); JXCollapsiblePane m_tab = collapsibleSection.getCollapsiblePane(); m_tab.setAnimated(false); m_tab.getContentPane().setBackground(AdempierePLAF.getFormBackground()); String cpConstraints = defaultLayoutConstraints; // 0 inset left and right as this is a nested panel // 0 inset top because of the struts added below cpConstraints += ", ins 0 0 n 0"; MigLayout layout = new MigLayout(cpConstraints); layout.addLayoutCallback(callback); collapsibleSection.setName(fieldGroup); m_main.add(collapsibleSection, "newline, spanx, growx"); m_tab.setLayout(layout); /* for compatibility with old layout, force collapsible field groups * to have a minimum of two columns by inserting invisible components */ Component strut1 = Box.createVerticalStrut(1); strut1.setName("vstrut1" + fieldGroup); Component strut2 = Box.createVerticalStrut(1); strut2.setName("vstrut2" + fieldGroup); m_tab.add(new CLabel(""), "gap 0 0 0 0"); m_tab.add(strut1, "pushx, growx, gap 0 0 0 0"); m_tab.add(new CLabel(""), ""); m_tab.add(strut2, "pushx, growx, gap 0 0 0 0, wrap"); m_tablist.put(fieldGroup, collapsibleSection); } else // Label or null { CLabel label = new CLabel(fieldGroup, CLabel.LEADING); label.setFont(AdempierePLAF.getFont_Label().deriveFont(Font.BOLDITALIC, AdempierePLAF.getFont_Label().getSize2D())); m_main.add(label, "newline, alignx leading"); m_main.add(new JSeparator(), "newline, spanx, growx"); // reset } m_oldFieldGroup = fieldGroup; m_oldFieldGroupType = fieldGroupType; return true; }