1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 package com.sun.star.wizards.db;
24 
25 import com.sun.star.wizards.common.JavaTools;
26 import com.sun.star.wizards.common.PropertyNames;
27 
28 /**
29  *
30  * @author  bc93774
31  */
32 public class BlindtextCreator
33 {
34 
35     public static final String BlindText =
36             "Ut wisi enim ad minim veniam, quis nostrud exerci tation " + "ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor " + "in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at " + "vero et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore " + "te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy " + "nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, " + "quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. " + "Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum " + "dolore eu feugiat nulla facilisis at vero et accumsan et iusto odio dignissim qui blandit praesent " + "luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis " + "eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.";
37 
adjustBlindTextlength(String FieldTitle, int FieldWidth, boolean bIsCurLandscape, boolean bIsGroupTable, String[] _RecordFieldNames)38     public static String adjustBlindTextlength(String FieldTitle, int FieldWidth, boolean bIsCurLandscape, boolean bIsGroupTable, String[] _RecordFieldNames)
39     {
40         String BlindTextString = PropertyNames.EMPTY_STRING;
41         if (bIsGroupTable)
42         {
43             return getBlindTextString(FieldTitle, FieldWidth, FieldWidth);
44         }
45         int MaxFieldCount = getMaxFieldCount(bIsCurLandscape);
46         if (_RecordFieldNames.length <= 2 * MaxFieldCount)
47         {
48             if (_RecordFieldNames.length <= MaxFieldCount)
49             {
50                 BlindTextString = getBlindTextString(FieldTitle, FieldWidth, FieldWidth);
51             }
52             else
53             {
54                 BlindTextString = getBlindTextString(FieldTitle, FieldWidth, (int) (0.5 * FieldWidth));
55             }
56         }
57         else
58         {
59             BlindTextString = getBlindTextString(FieldTitle, FieldWidth, (int) 1.1 * FieldTitle.length());
60         }
61         return BlindTextString;
62     }
63 
getBlindTextString(String FieldTitle, int FieldWidth, int MaxWidth)64     public static String getBlindTextString(String FieldTitle, int FieldWidth, int MaxWidth)
65     {
66         String[] BlindTextArray = JavaTools.ArrayoutofString(BlindText, PropertyNames.SPACE);
67         String PartBlindText = BlindTextArray[0];
68         String NewPartBlindText;
69         int MaxHeaderWidth;
70         int Titlelength = (int) 1.1 * FieldTitle.length(); // We assume that the TableHeading is bold
71 
72         if (Titlelength > PartBlindText.length())
73         {
74             MaxHeaderWidth = Titlelength;
75         }
76         else
77         {
78             MaxHeaderWidth = PartBlindText.length();
79         }
80         if (MaxHeaderWidth > MaxWidth)
81         {
82             MaxWidth = MaxHeaderWidth;
83         }
84         int i = 1;
85         do
86         {
87             NewPartBlindText = PartBlindText + PropertyNames.SPACE + BlindTextArray[i];
88             if (NewPartBlindText.length() < MaxWidth)
89             {
90                 PartBlindText = NewPartBlindText;
91                 i += 1;
92             }
93         }
94         while (NewPartBlindText.length() < MaxWidth);
95         return PartBlindText;
96     }
97 
getMaxFieldCount(boolean bIsCurLandscape)98     private static int getMaxFieldCount(boolean bIsCurLandscape)
99     {
100         if (bIsCurLandscape)
101         {
102             return 5;
103         }
104         else
105         {
106             return 3;
107         }
108     }
109 }
110