MAJ (prise en compte des paragraphes long sur deux pages avec des sauts
automatiques)
This commit is contained in:
parent
350ed329b1
commit
ca54648e16
Binary file not shown.
1
bin/.gitignore
vendored
1
bin/.gitignore
vendored
@ -1 +1,2 @@
|
||||
/MEPTL/
|
||||
/fenetres/
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -677,13 +677,13 @@ public class meptl {
|
||||
|
||||
page = nodpage.get(nodpage.size()-1); // dernière page enregistrer pour insérer des enfants en bas de la boucle
|
||||
|
||||
|
||||
// les sauts automatiques de page dans les paragraphes (text:soft-page-break)
|
||||
//******************************************************************************
|
||||
//** les sauts automatiques de page dans les paragraphes (text:soft-page-break)
|
||||
//******************************************************************************
|
||||
if(nodstructure.getNodes().get(j).retourneEnfantsByNameExist("text:soft-page-break")) {
|
||||
boolean insertionFait=false;
|
||||
ArrayList<node> nods1 = a.retourneNames(nodstructure.getNodes().get(j), "text:soft-page-break");
|
||||
|
||||
if(nods1.size()>1) {
|
||||
for(int k = 0 ; k < nods1.size();k++) {
|
||||
node p = new node();
|
||||
p.setNomElt("page");
|
||||
p.getAttributs().put("numero", String.valueOf(compteurpage));
|
||||
@ -691,13 +691,13 @@ public class meptl {
|
||||
p.getAttributs().put("index",String.valueOf(j));
|
||||
|
||||
// recherche de l'index parmis les enfants du node text:soft-page-break.
|
||||
int[] indexBreak = new int[nods1.size()+1];
|
||||
int[] indexBreak = new int[nods1.size()];
|
||||
indexBreak[0]=0;
|
||||
for(int v = 1 ; v < nods1.size()+1 ; v++) {
|
||||
for(int v = 0 ; v < nods1.size() ; v++) {
|
||||
indexBreak[v]=-1;
|
||||
}
|
||||
|
||||
int i2 = 1;
|
||||
int i2 = 0;
|
||||
for(int v = 0 ; v < nodstructure.getNodes().get(j).getNodes().size(); v++) {
|
||||
if(nodstructure.getNodes().get(j).getNodes().get(v).getNomElt().equals("text:soft-page-break")) {
|
||||
indexBreak[i2]=v;
|
||||
@ -708,54 +708,106 @@ public class meptl {
|
||||
|
||||
//Détermine s'il y a que du texte vide avant le saut automatique
|
||||
boolean[] ContenusVidesAvantBreak = new boolean[nods1.size()];
|
||||
boolean[] insertionRealiser = new boolean[nods1.size()];
|
||||
for(int v = 0 ; v < nods1.size() ; v++) {
|
||||
ContenusVidesAvantBreak[v]=true;
|
||||
insertionRealiser[v]=false;
|
||||
}
|
||||
|
||||
for(int u = 0; u < nods1.size() ; u++) {
|
||||
for(int v = 0 ; v <= indexBreak[u]; v++) {
|
||||
if(nodstructure.getNodes().get(j).getContenu().get(v)!=null) {
|
||||
if(ContenusVidesAvantBreak[u]) {
|
||||
if(!nodstructure.getNodes().get(j).getContenu().get(v).isEmpty()) {
|
||||
ContenusVidesAvantBreak[u]=false;
|
||||
}
|
||||
}
|
||||
if(v==indexBreak[u] && !ContenusVidesAvantBreak[u]) {
|
||||
nodstructure.getNodes().get(j).getContenu().set(
|
||||
v,nodstructure.getNodes().get(j).getContenu().get(v) + "** TEXT:SOFT-PAGE-BREAK **");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Contenu & node après le text:soft-page-break
|
||||
node[] textSoftPageBreak = new node[nods1.size()];
|
||||
|
||||
|
||||
for(int u = 0; u < nods1.size() ; u++) {
|
||||
textSoftPageBreak[u] = new node();
|
||||
textSoftPageBreak[u].setNomElt("saut:automatique");
|
||||
|
||||
for(int v = indexBreak[u] ; v <= indexBreak[u+1]; v++) {
|
||||
System.out.println("De " + indexBreak[u] + " à "+ indexBreak[u+1] );
|
||||
if(nodstructure.getNodes().get(j).getContenu().get(v)!=null) {
|
||||
if(!nodstructure.getNodes().get(j).getContenu().get(v).isEmpty()) {
|
||||
ContenusVidesAvantBreak[u]=false;
|
||||
if(!ContenusVidesAvantBreak[u]) {
|
||||
// Ajoute dans le node textSoftPageBreak
|
||||
for(int v = indexBreak[u]+1 ; v <= nodstructure.getNodes().get(j).getNodes().size(); v++) {
|
||||
if(nodstructure.getNodes().get(j).getContenu().size()>v) {
|
||||
textSoftPageBreak[u].getContenu().add(nodstructure.getNodes().get(j).getContenu().get(v));
|
||||
}
|
||||
if(v==indexBreak[u+1]) {
|
||||
nodstructure.getNodes().get(j).getContenu().set(
|
||||
v,nodstructure.getNodes().get(j).getContenu().get(v) + "** TEXT:SOFT-PAGE-BREAK **");
|
||||
if(nodstructure.getNodes().get(j).getNodes().size()>v) {
|
||||
textSoftPageBreak[u].getNodes().add(nodstructure.getNodes().get(j).getNodes().get(v));
|
||||
}
|
||||
}
|
||||
|
||||
// suprresion des contenus et des nodes enfants dans le paragraphe dans le paragraphe
|
||||
for(int v = indexBreak[u]+1 ; v <= nodstructure.getNodes().get(j).getNodes().size(); v++) {
|
||||
if(nodstructure.getNodes().get(j).getContenu().size()>indexBreak[u]+1) nodstructure.getNodes().get(j).getContenu().remove(indexBreak[u]+1);
|
||||
}
|
||||
|
||||
for(int v = indexBreak[u] ; v <= nodstructure.getNodes().get(j).getNodes().size(); v++) {
|
||||
if(nodstructure.getNodes().get(j).getNodes().size()>indexBreak[u]) nodstructure.getNodes().get(j).getNodes().remove(indexBreak[u]);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if(!insertionFait) {
|
||||
|
||||
for(int u = 0; u < nods1.size() ; u++) {
|
||||
|
||||
|
||||
if(ContenusVidesAvantBreak[0]) {
|
||||
// place le node dans la même page du node p.
|
||||
p.getNodes().add(nodstructure.getNodes().get(j));
|
||||
}else {
|
||||
// place le node de la page précédente
|
||||
nodpage.get(nodpage.size()-1).getNodes().add(nodstructure.getNodes().get(j));
|
||||
if(!insertionRealiser[0]) {
|
||||
p.getNodes().add(nodstructure.getNodes().get(j));
|
||||
insertionRealiser[0]=true;
|
||||
nodpage.add(p);
|
||||
compteurpage++;
|
||||
|
||||
node p1 = new node();
|
||||
p1.setNomElt("page");
|
||||
p1.getAttributs().put("numero", String.valueOf(compteurpage));
|
||||
p1.getAttributs().put("type","automatique");
|
||||
p1.getAttributs().put("index",String.valueOf(j));
|
||||
p1.getNodes().add(textSoftPageBreak[u+1]);
|
||||
|
||||
insertionRealiser[1]=true;
|
||||
|
||||
if(nods1.size()<3) {
|
||||
nodpage.add(p1);
|
||||
compteurpage++;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if(!insertionRealiser[0]&&!ContenusVidesAvantBreak[0]) {
|
||||
// place le node de la page précédente
|
||||
nodpage.get(nodpage.size()-1).getNodes().add(nodstructure.getNodes().get(j)); //ok
|
||||
// place le textSoftPageBreak sur la page du node p.
|
||||
p.getNodes().add(textSoftPageBreak[u]);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
insertionFait=true;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
if(!insertionFait) {
|
||||
nodpage.get(nodpage.size()-1).getNodes().add(nodstructure.getNodes().get(j));
|
||||
// p.getNodes().add(nodstructure.getNodes().get(j)); //insertion du paragraphe (text:p) qui contient le saut automatique
|
||||
insertionFait=true;
|
||||
|
||||
if(!insertionRealiser[0]&&!insertionRealiser[1]) {
|
||||
nodpage.add(p);
|
||||
compteurpage++;
|
||||
}
|
||||
|
||||
nodpage.add(p);
|
||||
compteurpage++;
|
||||
}
|
||||
|
||||
|
||||
page = nodpage.get(nodpage.size()-1);
|
||||
continue;
|
||||
|
||||
}else {
|
||||
node p = new node();
|
||||
p.setNomElt("page");
|
||||
@ -770,19 +822,41 @@ public class meptl {
|
||||
}
|
||||
|
||||
//Détermine s'il y a que du texte vide avant le saut automatique
|
||||
boolean ContenusVidesAvantBreak = true;
|
||||
boolean ContenusVidesAvantBreak = true;
|
||||
// Contenu & node après le text:soft-page-break
|
||||
node textSoftPageBreak = new node();
|
||||
textSoftPageBreak.setNomElt("saut:automatique");
|
||||
|
||||
for(int v = 0 ; v <= indexBreak; v++) {
|
||||
if(nodstructure.getNodes().get(j).getContenu().get(v)!=null) {
|
||||
if(!nodstructure.getNodes().get(j).getContenu().get(v).isEmpty()) {
|
||||
ContenusVidesAvantBreak=false;
|
||||
}
|
||||
if(v==indexBreak) {
|
||||
nodstructure.getNodes().get(j).getContenu().set(
|
||||
v,nodstructure.getNodes().get(j).getContenu().get(v) + "** TEXT:SOFT-PAGE-BREAK **");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!ContenusVidesAvantBreak) {
|
||||
// Ajoute dans le node textSoftPageBreak
|
||||
for(int v = indexBreak+1 ; v <= nodstructure.getNodes().get(j).getNodes().size(); v++) {
|
||||
if(nodstructure.getNodes().get(j).getContenu().size()>v) {
|
||||
textSoftPageBreak.getContenu().add(nodstructure.getNodes().get(j).getContenu().get(v));
|
||||
}
|
||||
if(nodstructure.getNodes().get(j).getNodes().size()>v) {
|
||||
textSoftPageBreak.getNodes().add(nodstructure.getNodes().get(j).getNodes().get(v));
|
||||
}
|
||||
}
|
||||
|
||||
for(int v = indexBreak+1 ; v <= nodstructure.getNodes().get(j).getNodes().size(); v++) {
|
||||
if(nodstructure.getNodes().get(j).getContenu().size()>indexBreak+1) nodstructure.getNodes().get(j).getContenu().remove(indexBreak+1);
|
||||
}
|
||||
|
||||
for(int v = indexBreak ; v <= nodstructure.getNodes().get(j).getNodes().size(); v++) {
|
||||
if(nodstructure.getNodes().get(j).getNodes().size()>indexBreak) nodstructure.getNodes().get(j).getNodes().remove(indexBreak);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// S'il y a que du texte vide.
|
||||
if(ContenusVidesAvantBreak) {
|
||||
// place le node dans la même page du node p.
|
||||
@ -790,6 +864,8 @@ public class meptl {
|
||||
}else {
|
||||
// place le node de la page précédente
|
||||
nodpage.get(nodpage.size()-1).getNodes().add(nodstructure.getNodes().get(j));
|
||||
// place le textSoftPageBreak sur la page du node p.
|
||||
p.getNodes().add(textSoftPageBreak);
|
||||
}
|
||||
|
||||
nodpage.add(p);
|
||||
@ -799,7 +875,9 @@ public class meptl {
|
||||
}
|
||||
}
|
||||
|
||||
//**************************************************************************
|
||||
// les sauts manuels de page dans les paragraphes <text:p> et <text:list>
|
||||
//**************************************************************************
|
||||
if(nodstructure.getNodes().get(j).getAttributs().get("text:style-name")!=null) {
|
||||
node nod2 = a.retourneFirstNodeByNameAttributValue(nodstyle.getNodes(), "style:style", "style:name", nodstructure.getNodes().get(j).getAttributs().get("text:style-name"));
|
||||
if(nod2!=null) {
|
||||
@ -811,6 +889,7 @@ public class meptl {
|
||||
p.getAttributs().put("index",String.valueOf(j));
|
||||
p.getAttributs().put("style:master-page-name",nod2.getAttributs().get("style:master-page-name"));
|
||||
p.getAttributs().put("style:name",nod2.getAttributs().get("style:name"));
|
||||
|
||||
node nod3 = a.retourneName(nod2.getNodes(), "style:paragraph-properties","fo:break-before");
|
||||
if(nod3!=null) {
|
||||
if(nod3.getAttributs().get("style:page-number")!=null) p.getAttributs().put("style:page_number", nod3.getAttributs().get("style:page-number"));
|
||||
@ -820,7 +899,7 @@ public class meptl {
|
||||
p.getAttributs().put("style:page_number", nod3.getAttributs().get("style:page-number"));
|
||||
}
|
||||
}
|
||||
// nodpage.get(nodpage.size()-1).getNodes().add(nodstructure.getNodes().get(j));
|
||||
|
||||
p.getNodes().add(nodstructure.getNodes().get(j));
|
||||
nodpage.add(p);
|
||||
compteurpage++;
|
||||
@ -833,7 +912,7 @@ public class meptl {
|
||||
p.getAttributs().put("numero", String.valueOf(compteurpage));
|
||||
p.getAttributs().put("type","automatique");
|
||||
p.getAttributs().put("index",String.valueOf(j));
|
||||
// nodpage.get(nodpage.size()-1).getNodes().add(nodstructure.getNodes().get(j));
|
||||
|
||||
p.getNodes().add(nodstructure.getNodes().get(j));
|
||||
nodpage.add(p);
|
||||
compteurpage++;
|
||||
@ -843,7 +922,9 @@ public class meptl {
|
||||
}
|
||||
}
|
||||
|
||||
//*************************************************
|
||||
// les sauts manuels hors paragraphe et titre
|
||||
//*************************************************
|
||||
if(!nodstructure.getNodes().get(j).getNomElt().equals("text:p") && !nodstructure.getNodes().get(j).getNomElt().equals("text:h") ) {
|
||||
ArrayList<node> lesparagraphes = a.retourneNames(nodstructure.getNodes().get(j).getNodes(), "text:p");
|
||||
node nod2 = a.retourneName(lesparagraphes, "text:p", "text:style-name");
|
||||
@ -878,7 +959,7 @@ public class meptl {
|
||||
p.getAttributs().put("numero", String.valueOf(compteurpage));
|
||||
p.getAttributs().put("type","automatique");
|
||||
p.getAttributs().put("index",String.valueOf(j));
|
||||
// nodpage.get(nodpage.size()-1).getNodes().add(nodstructure.getNodes().get(j));
|
||||
|
||||
p.getNodes().add(nodstructure.getNodes().get(j));
|
||||
nodpage.add(p);
|
||||
compteurpage++;
|
||||
|
@ -1,17 +1,12 @@
|
||||
package fenetres;
|
||||
|
||||
import java.awt.Component;
|
||||
import java.awt.event.ComponentListener;
|
||||
import java.awt.event.ItemEvent;
|
||||
import java.awt.event.ItemListener;
|
||||
|
||||
|
||||
import javax.swing.AbstractCellEditor;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JTree;
|
||||
import javax.swing.tree.DefaultMutableTreeNode;
|
||||
import javax.swing.tree.TreeCellEditor;
|
||||
|
||||
import cXML.node;
|
||||
|
||||
|
||||
|
||||
@ -19,10 +14,13 @@ import cXML.node;
|
||||
public class MyTreeCellEditor extends AbstractCellEditor implements TreeCellEditor{
|
||||
|
||||
|
||||
private final JTree theTree;
|
||||
// private final JTree theTree;
|
||||
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public MyTreeCellEditor(final JTree tree) {
|
||||
theTree = tree;
|
||||
// theTree = tree;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -1,7 +1,6 @@
|
||||
package fenetres.create_act;
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import javax.swing.AbstractAction;
|
||||
import javax.swing.Action;
|
||||
|
Loading…
Reference in New Issue
Block a user