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/
|
/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
|
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")) {
|
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");
|
ArrayList<node> nods1 = a.retourneNames(nodstructure.getNodes().get(j), "text:soft-page-break");
|
||||||
|
|
||||||
if(nods1.size()>1) {
|
if(nods1.size()>1) {
|
||||||
for(int k = 0 ; k < nods1.size();k++) {
|
|
||||||
node p = new node();
|
node p = new node();
|
||||||
p.setNomElt("page");
|
p.setNomElt("page");
|
||||||
p.getAttributs().put("numero", String.valueOf(compteurpage));
|
p.getAttributs().put("numero", String.valueOf(compteurpage));
|
||||||
@ -691,13 +691,13 @@ public class meptl {
|
|||||||
p.getAttributs().put("index",String.valueOf(j));
|
p.getAttributs().put("index",String.valueOf(j));
|
||||||
|
|
||||||
// recherche de l'index parmis les enfants du node text:soft-page-break.
|
// 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;
|
indexBreak[0]=0;
|
||||||
for(int v = 1 ; v < nods1.size()+1 ; v++) {
|
for(int v = 0 ; v < nods1.size() ; v++) {
|
||||||
indexBreak[v]=-1;
|
indexBreak[v]=-1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int i2 = 1;
|
int i2 = 0;
|
||||||
for(int v = 0 ; v < nodstructure.getNodes().get(j).getNodes().size(); v++) {
|
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")) {
|
if(nodstructure.getNodes().get(j).getNodes().get(v).getNomElt().equals("text:soft-page-break")) {
|
||||||
indexBreak[i2]=v;
|
indexBreak[i2]=v;
|
||||||
@ -708,54 +708,106 @@ public class meptl {
|
|||||||
|
|
||||||
//Détermine s'il y a que du texte vide avant le saut automatique
|
//Détermine s'il y a que du texte vide avant le saut automatique
|
||||||
boolean[] ContenusVidesAvantBreak = new boolean[nods1.size()];
|
boolean[] ContenusVidesAvantBreak = new boolean[nods1.size()];
|
||||||
|
boolean[] insertionRealiser = new boolean[nods1.size()];
|
||||||
for(int v = 0 ; v < nods1.size() ; v++) {
|
for(int v = 0 ; v < nods1.size() ; v++) {
|
||||||
ContenusVidesAvantBreak[v]=true;
|
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++) {
|
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++) {
|
if(!ContenusVidesAvantBreak[u]) {
|
||||||
System.out.println("De " + indexBreak[u] + " à "+ indexBreak[u+1] );
|
// Ajoute dans le node textSoftPageBreak
|
||||||
if(nodstructure.getNodes().get(j).getContenu().get(v)!=null) {
|
for(int v = indexBreak[u]+1 ; v <= nodstructure.getNodes().get(j).getNodes().size(); v++) {
|
||||||
if(!nodstructure.getNodes().get(j).getContenu().get(v).isEmpty()) {
|
if(nodstructure.getNodes().get(j).getContenu().size()>v) {
|
||||||
ContenusVidesAvantBreak[u]=false;
|
textSoftPageBreak[u].getContenu().add(nodstructure.getNodes().get(j).getContenu().get(v));
|
||||||
}
|
}
|
||||||
if(v==indexBreak[u+1]) {
|
if(nodstructure.getNodes().get(j).getNodes().size()>v) {
|
||||||
nodstructure.getNodes().get(j).getContenu().set(
|
textSoftPageBreak[u].getNodes().add(nodstructure.getNodes().get(j).getNodes().get(v));
|
||||||
v,nodstructure.getNodes().get(j).getContenu().get(v) + "** TEXT:SOFT-PAGE-BREAK **");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 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]) {
|
if(ContenusVidesAvantBreak[0]) {
|
||||||
// place le node dans la même page du node p.
|
if(!insertionRealiser[0]) {
|
||||||
p.getNodes().add(nodstructure.getNodes().get(j));
|
p.getNodes().add(nodstructure.getNodes().get(j));
|
||||||
}else {
|
insertionRealiser[0]=true;
|
||||||
// place le node de la page précédente
|
nodpage.add(p);
|
||||||
nodpage.get(nodpage.size()-1).getNodes().add(nodstructure.getNodes().get(j));
|
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(!insertionRealiser[0]&&!insertionRealiser[1]) {
|
||||||
|
nodpage.add(p);
|
||||||
if(!insertionFait) {
|
compteurpage++;
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
nodpage.add(p);
|
|
||||||
compteurpage++;
|
|
||||||
}
|
|
||||||
|
|
||||||
page = nodpage.get(nodpage.size()-1);
|
page = nodpage.get(nodpage.size()-1);
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
}else {
|
}else {
|
||||||
node p = new node();
|
node p = new node();
|
||||||
p.setNomElt("page");
|
p.setNomElt("page");
|
||||||
@ -770,19 +822,41 @@ public class meptl {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Détermine s'il y a que du texte vide avant le saut automatique
|
//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++) {
|
for(int v = 0 ; v <= indexBreak; v++) {
|
||||||
if(nodstructure.getNodes().get(j).getContenu().get(v)!=null) {
|
if(nodstructure.getNodes().get(j).getContenu().get(v)!=null) {
|
||||||
if(!nodstructure.getNodes().get(j).getContenu().get(v).isEmpty()) {
|
if(!nodstructure.getNodes().get(j).getContenu().get(v).isEmpty()) {
|
||||||
ContenusVidesAvantBreak=false;
|
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.
|
// S'il y a que du texte vide.
|
||||||
if(ContenusVidesAvantBreak) {
|
if(ContenusVidesAvantBreak) {
|
||||||
// place le node dans la même page du node p.
|
// place le node dans la même page du node p.
|
||||||
@ -790,6 +864,8 @@ public class meptl {
|
|||||||
}else {
|
}else {
|
||||||
// place le node de la page précédente
|
// place le node de la page précédente
|
||||||
nodpage.get(nodpage.size()-1).getNodes().add(nodstructure.getNodes().get(j));
|
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);
|
nodpage.add(p);
|
||||||
@ -799,7 +875,9 @@ public class meptl {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//**************************************************************************
|
||||||
// les sauts manuels de page dans les paragraphes <text:p> et <text:list>
|
// les sauts manuels de page dans les paragraphes <text:p> et <text:list>
|
||||||
|
//**************************************************************************
|
||||||
if(nodstructure.getNodes().get(j).getAttributs().get("text:style-name")!=null) {
|
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"));
|
node nod2 = a.retourneFirstNodeByNameAttributValue(nodstyle.getNodes(), "style:style", "style:name", nodstructure.getNodes().get(j).getAttributs().get("text:style-name"));
|
||||||
if(nod2!=null) {
|
if(nod2!=null) {
|
||||||
@ -811,6 +889,7 @@ public class meptl {
|
|||||||
p.getAttributs().put("index",String.valueOf(j));
|
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:master-page-name",nod2.getAttributs().get("style:master-page-name"));
|
||||||
p.getAttributs().put("style:name",nod2.getAttributs().get("style:name"));
|
p.getAttributs().put("style:name",nod2.getAttributs().get("style:name"));
|
||||||
|
|
||||||
node nod3 = a.retourneName(nod2.getNodes(), "style:paragraph-properties","fo:break-before");
|
node nod3 = a.retourneName(nod2.getNodes(), "style:paragraph-properties","fo:break-before");
|
||||||
if(nod3!=null) {
|
if(nod3!=null) {
|
||||||
if(nod3.getAttributs().get("style:page-number")!=null) p.getAttributs().put("style:page_number", nod3.getAttributs().get("style:page-number"));
|
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"));
|
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));
|
p.getNodes().add(nodstructure.getNodes().get(j));
|
||||||
nodpage.add(p);
|
nodpage.add(p);
|
||||||
compteurpage++;
|
compteurpage++;
|
||||||
@ -833,7 +912,7 @@ public class meptl {
|
|||||||
p.getAttributs().put("numero", String.valueOf(compteurpage));
|
p.getAttributs().put("numero", String.valueOf(compteurpage));
|
||||||
p.getAttributs().put("type","automatique");
|
p.getAttributs().put("type","automatique");
|
||||||
p.getAttributs().put("index",String.valueOf(j));
|
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));
|
p.getNodes().add(nodstructure.getNodes().get(j));
|
||||||
nodpage.add(p);
|
nodpage.add(p);
|
||||||
compteurpage++;
|
compteurpage++;
|
||||||
@ -843,7 +922,9 @@ public class meptl {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//*************************************************
|
||||||
// les sauts manuels hors paragraphe et titre
|
// les sauts manuels hors paragraphe et titre
|
||||||
|
//*************************************************
|
||||||
if(!nodstructure.getNodes().get(j).getNomElt().equals("text:p") && !nodstructure.getNodes().get(j).getNomElt().equals("text:h") ) {
|
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");
|
ArrayList<node> lesparagraphes = a.retourneNames(nodstructure.getNodes().get(j).getNodes(), "text:p");
|
||||||
node nod2 = a.retourneName(lesparagraphes, "text:p", "text:style-name");
|
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("numero", String.valueOf(compteurpage));
|
||||||
p.getAttributs().put("type","automatique");
|
p.getAttributs().put("type","automatique");
|
||||||
p.getAttributs().put("index",String.valueOf(j));
|
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));
|
p.getNodes().add(nodstructure.getNodes().get(j));
|
||||||
nodpage.add(p);
|
nodpage.add(p);
|
||||||
compteurpage++;
|
compteurpage++;
|
||||||
|
@ -1,17 +1,12 @@
|
|||||||
package fenetres;
|
package fenetres;
|
||||||
|
|
||||||
import java.awt.Component;
|
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.AbstractCellEditor;
|
||||||
import javax.swing.JPanel;
|
|
||||||
import javax.swing.JTree;
|
import javax.swing.JTree;
|
||||||
import javax.swing.tree.DefaultMutableTreeNode;
|
|
||||||
import javax.swing.tree.TreeCellEditor;
|
import javax.swing.tree.TreeCellEditor;
|
||||||
|
|
||||||
import cXML.node;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -19,10 +14,13 @@ import cXML.node;
|
|||||||
public class MyTreeCellEditor extends AbstractCellEditor implements TreeCellEditor{
|
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) {
|
public MyTreeCellEditor(final JTree tree) {
|
||||||
theTree = tree;
|
// theTree = tree;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package fenetres.create_act;
|
package fenetres.create_act;
|
||||||
|
|
||||||
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionEvent;
|
||||||
import java.util.ArrayList;
|
|
||||||
|
|
||||||
import javax.swing.AbstractAction;
|
import javax.swing.AbstractAction;
|
||||||
import javax.swing.Action;
|
import javax.swing.Action;
|
||||||
|
Loading…
Reference in New Issue
Block a user