Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Merging Alan's code into the main branch
  • Loading branch information
schirmerc committed Dec 8, 2015
1 parent 742396c commit 0824490
Show file tree
Hide file tree
Showing 5 changed files with 34 additions and 16 deletions.
Binary file modified SweetHome3D/classes/com/eteks/sweethome3d/j3d/OBJLoader.class
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Expand Up @@ -37,8 +37,10 @@ import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;
import java.security.AccessControlException;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
import java.util.Set;
Expand Down Expand Up @@ -333,21 +335,24 @@ public class HomePrintableComponent extends JComponent implements Printable {
&& (homePrint == null || homePrint.isFurniturePrinted())) {
FurnitureTable furnitureTable = null;
final FurnitureTable.FurnitureFilter furnitureFilter;
if (furnitureView instanceof FurnitureTable
&& (homePrint == null
|| homePrint.isPlanPrinted()
|| homePrint.isView3DPrinted())) {
if (furnitureView instanceof FurnitureTable) {
final Level selectedLevel = home.getSelectedLevel();
furnitureTable = (FurnitureTable)furnitureView;
furnitureFilter = furnitureTable.getFurnitureFilter();
furnitureTable.setFurnitureFilter(new FurnitureTable.FurnitureFilter() {
public boolean include(Home home, HomePieceOfFurniture piece) {
// Print only furniture at selected level when the plan or the 3D view is printed
// Print furniture at selected levels
List<Boolean> furnitureLevels = home.getPrint().getFurnitureList();
Boolean includePiece = false;
for (int i = 0; i < furnitureLevels.size(); i++) {
if (furnitureLevels.get(i) && piece.isAtLevel(home.getLevels().get(i)))
includePiece = true;
}
return (furnitureFilter == null || furnitureFilter.include(home, piece))
&& piece.isAtLevel(selectedLevel)
&& includePiece
&& (piece.getLevel() == null || piece.getLevel().isViewable());
}
});
});
} else {
furnitureFilter = null;
}
Expand All @@ -363,17 +368,30 @@ public class HomePrintableComponent extends JComponent implements Printable {
this.furniturePageCount++;
}
}
if (pageExists == NO_SUCH_PAGE
&& planView != null
&& (homePrint == null || homePrint.isPlanPrinted())) {
// Try to print next plan view page
pageExists = ((Printable)planView).print(g2D, pageFormat, page - this.furniturePageCount);
if (pageExists == PAGE_EXISTS
&& !this.printablePages.contains(page)) {
this.printablePages.add(page);
this.planPageCount++;

Level tempLevel = home.getSelectedLevel();
List<Boolean> planLevels = homePrint.getPlanViewList();
PlanView planToPrint;
// Loop through levels to be printed
for (int i = 0; i < planLevels.size(); i++) {
if (planLevels.get(i)) {
home.setSelectedLevel(home.getLevels().get(i));
planToPrint = this.controller.getPlanController().getView();
if (pageExists == NO_SUCH_PAGE ) {
// Try to print next plan view page
pageExists = ((Printable)planToPrint).print(g2D, pageFormat, page - this.furniturePageCount);
if (pageExists == PAGE_EXISTS
&& !this.printablePages.contains(page)) {
this.printablePages.add(page);
this.planPageCount++;
}
}
}
}
home.setSelectedLevel(tempLevel);



View view3D = this.controller.getHomeController3D().getView();
if (pageExists == NO_SUCH_PAGE
&& view3D != null
Expand Down

0 comments on commit 0824490

Please sign in to comment.