Added 1.12.2 version with some changes.
This commit is contained in:
		
							parent
							
								
									deb10b1099
								
							
						
					
					
						commit
						67915ffdf1
					
				| 
						 | 
				
			
			@ -26,7 +26,7 @@ import java.util.logging.Logger;
 | 
			
		|||
 * into one's clipboard and pasting the pages.
 | 
			
		||||
 */
 | 
			
		||||
public class BookExporter implements Runnable {
 | 
			
		||||
	private final static int START_DELAY = 10;
 | 
			
		||||
	private final static int START_DELAY = 5;
 | 
			
		||||
	private final static int CLIPBOARD_RETRY_DELAY_MS = 100;
 | 
			
		||||
 | 
			
		||||
	private final Book book;
 | 
			
		||||
| 
						 | 
				
			
			@ -48,8 +48,8 @@ public class BookExporter implements Runnable {
 | 
			
		|||
 | 
			
		||||
	// Some sound clips to play as user feedback.
 | 
			
		||||
	private final Clip beepClip;
 | 
			
		||||
	private final Clip beginningExportClip;
 | 
			
		||||
	private final Clip finishClip;
 | 
			
		||||
//	private final Clip beginningExportClip;
 | 
			
		||||
//	private final Clip finishClip;
 | 
			
		||||
 | 
			
		||||
	public BookExporter(ExportToBookDialog dialog, ExportStatusPanel exportStatusPanel, Book book, boolean autoPaste, int autoPasteDelay) {
 | 
			
		||||
		this.dialog = dialog;
 | 
			
		||||
| 
						 | 
				
			
			@ -58,8 +58,8 @@ public class BookExporter implements Runnable {
 | 
			
		|||
		this.autoPaste = autoPaste;
 | 
			
		||||
		this.autoPasteDelay = autoPasteDelay;
 | 
			
		||||
		this.beepClip = this.loadAudioClip(ApplicationProperties.getProp("export_dialog.beep_sound"));
 | 
			
		||||
		this.beginningExportClip = this.loadAudioClip(ApplicationProperties.getProp("export_dialog.beginning_export"));
 | 
			
		||||
		this.finishClip = this.loadAudioClip(ApplicationProperties.getProp("export_dialog.finish_sound"));
 | 
			
		||||
//		this.beginningExportClip = this.loadAudioClip(ApplicationProperties.getProp("export_dialog.beginning_export"));
 | 
			
		||||
//		this.finishClip = this.loadAudioClip(ApplicationProperties.getProp("export_dialog.finish_sound"));
 | 
			
		||||
		this.clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
 | 
			
		||||
		this.exporterKeyListener = new ExporterKeyListener(this);
 | 
			
		||||
		if (this.autoPaste) { // Only initialize the robot if we'll need it.
 | 
			
		||||
| 
						 | 
				
			
			@ -97,7 +97,7 @@ public class BookExporter implements Runnable {
 | 
			
		|||
					this.initStatusPanel();
 | 
			
		||||
					this.updateStatusLabel("Exporting.");
 | 
			
		||||
					this.initNativeListener();
 | 
			
		||||
					this.playAudioClip(this.beginningExportClip);
 | 
			
		||||
//					this.playAudioClip(this.beginningExportClip);
 | 
			
		||||
				}
 | 
			
		||||
				this.exportPageToClipboard(nextPageToExport);
 | 
			
		||||
				if (this.autoPaste) {
 | 
			
		||||
| 
						 | 
				
			
			@ -109,7 +109,7 @@ public class BookExporter implements Runnable {
 | 
			
		|||
				this.updateStatusProgressBar(nextPageToExport);
 | 
			
		||||
				// If we've reached the end of the book, stop the exporter.
 | 
			
		||||
				if (nextPageToExport >= this.book.getPageCount()) {
 | 
			
		||||
					this.playAudioClip(this.finishClip);
 | 
			
		||||
//					this.playAudioClip(this.finishClip);
 | 
			
		||||
					this.addStatusMessage("Export finished: " + this.book.getPageCount() + " pages exported.");
 | 
			
		||||
					if (!this.autoPaste) {
 | 
			
		||||
						this.stopNativeListener();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -27,6 +27,9 @@ public class BookPreviewPanel extends JPanel {
 | 
			
		|||
	private final JButton firstPageButton;
 | 
			
		||||
	private final JButton lastPageButton;
 | 
			
		||||
 | 
			
		||||
	private final SpinnerNumberModel currentPageNumberModel;
 | 
			
		||||
	private boolean ignoreCurrentPageChange = false;
 | 
			
		||||
 | 
			
		||||
	public BookPreviewPanel() {
 | 
			
		||||
		super(new BorderLayout());
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -51,10 +54,12 @@ public class BookPreviewPanel extends JPanel {
 | 
			
		|||
		this.add(previewPageScrollPane, BorderLayout.CENTER);
 | 
			
		||||
 | 
			
		||||
		JPanel previewButtonPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
 | 
			
		||||
		currentPageNumberModel = new SpinnerNumberModel(0, 0, 0, 1);
 | 
			
		||||
		this.firstPageButton = new JButton();
 | 
			
		||||
		this.firstPageButton.setIcon(IconLoader.load("images/page_first.png", 16, 16));
 | 
			
		||||
		this.firstPageButton.addActionListener(e -> {
 | 
			
		||||
			this.currentPage = 0;
 | 
			
		||||
			updateCurrentPageModel();
 | 
			
		||||
			displayCurrentPage();
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -63,6 +68,7 @@ public class BookPreviewPanel extends JPanel {
 | 
			
		|||
		this.previousPageButton.addActionListener(e -> {
 | 
			
		||||
			if (currentPage > 0) {
 | 
			
		||||
				currentPage--;
 | 
			
		||||
				updateCurrentPageModel();
 | 
			
		||||
				displayCurrentPage();
 | 
			
		||||
			}
 | 
			
		||||
		});
 | 
			
		||||
| 
						 | 
				
			
			@ -72,6 +78,7 @@ public class BookPreviewPanel extends JPanel {
 | 
			
		|||
		this.nextPageButton.addActionListener(e -> {
 | 
			
		||||
			if (currentPage < book.getPageCount() - 1) {
 | 
			
		||||
				currentPage++;
 | 
			
		||||
				updateCurrentPageModel();
 | 
			
		||||
				displayCurrentPage();
 | 
			
		||||
			}
 | 
			
		||||
		});
 | 
			
		||||
| 
						 | 
				
			
			@ -79,11 +86,21 @@ public class BookPreviewPanel extends JPanel {
 | 
			
		|||
		this.lastPageButton.setIcon(IconLoader.load("images/page_last.png", 16, 16));
 | 
			
		||||
		this.lastPageButton.addActionListener(e -> {
 | 
			
		||||
			this.currentPage = Math.max(this.book.getPageCount() - 1, 0);
 | 
			
		||||
			updateCurrentPageModel();
 | 
			
		||||
			displayCurrentPage();
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		JSpinner currentPageSpinner = new JSpinner(currentPageNumberModel);
 | 
			
		||||
		currentPageSpinner.addChangeListener(e -> {
 | 
			
		||||
			if (!ignoreCurrentPageChange) {
 | 
			
		||||
				this.currentPage = (int) currentPageNumberModel.getValue() - 1;
 | 
			
		||||
				displayCurrentPage();
 | 
			
		||||
			}
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		previewButtonPanel.add(this.firstPageButton);
 | 
			
		||||
		previewButtonPanel.add(this.previousPageButton);
 | 
			
		||||
		previewButtonPanel.add(currentPageSpinner);
 | 
			
		||||
		previewButtonPanel.add(this.nextPageButton);
 | 
			
		||||
		previewButtonPanel.add(this.lastPageButton);
 | 
			
		||||
		this.add(previewButtonPanel, BorderLayout.SOUTH);
 | 
			
		||||
| 
						 | 
				
			
			@ -102,10 +119,27 @@ public class BookPreviewPanel extends JPanel {
 | 
			
		|||
 | 
			
		||||
	public void setBook(Book book) {
 | 
			
		||||
		this.book = book;
 | 
			
		||||
		ignoreCurrentPageChange = true;
 | 
			
		||||
		if (book.getPageCount() == 0) {
 | 
			
		||||
			currentPageNumberModel.setMinimum(0);
 | 
			
		||||
			currentPageNumberModel.setMaximum(0);
 | 
			
		||||
			currentPageNumberModel.setValue(0);
 | 
			
		||||
		} else {
 | 
			
		||||
			currentPageNumberModel.setMinimum(1);
 | 
			
		||||
			currentPageNumberModel.setMaximum(book.getPageCount());
 | 
			
		||||
			currentPageNumberModel.setValue(1);
 | 
			
		||||
		}
 | 
			
		||||
		ignoreCurrentPageChange = false;
 | 
			
		||||
		this.currentPage = 0;
 | 
			
		||||
		this.displayCurrentPage();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public void updateCurrentPageModel() {
 | 
			
		||||
		ignoreCurrentPageChange = true;
 | 
			
		||||
		currentPageNumberModel.setValue(currentPage + 1);
 | 
			
		||||
		ignoreCurrentPageChange = false;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public void setCurrentPage(int page) {
 | 
			
		||||
		this.currentPage = page;
 | 
			
		||||
		this.displayCurrentPage();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -16,8 +16,8 @@ about_dialog.min_height=800
 | 
			
		|||
about_dialog.source=html/about.html
 | 
			
		||||
 | 
			
		||||
# Settings for Minecraft book interaction.
 | 
			
		||||
book.max_pages=100
 | 
			
		||||
book.page_max_lines=14
 | 
			
		||||
book.page_max_width=113
 | 
			
		||||
book.page_max_chars=255
 | 
			
		||||
book.max_pages=50
 | 
			
		||||
book.page_max_lines=11
 | 
			
		||||
book.page_max_width=107
 | 
			
		||||
book.page_max_chars=205
 | 
			
		||||
book.default_char_width=5
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue