Skip to content

Instantly share code, notes, and snippets.

commit 35f1470f953212ca84c5a0de98b0d0d5eff735e9
Author: Eirik Bakke <[email protected]>
Date: Mon Aug 9 14:20:47 2021 +0200
Use the regular NetBeans SVG folder icons in FlatLAF.
diff --git a/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatLaf.properties b/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatLaf.properties
index be48cc194d..8144aabbea 100644
--- a/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatLaf.properties
+++ b/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatLaf.properties
@eirikbakke
eirikbakke / SVGBenchmark.java
Created June 7, 2019 02:52
SVG vs. PNG loading benchmark
import com.google.common.collect.ImmutableSet;
import com.google.common.math.StatsAccumulator;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.Set;
import javax.imageio.ImageIO;
package com.eirikbakke.upstream.popup;
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
public class PrintGC {
public static final void main(String args[]) {
System.out.println(System.getProperty("java.version"));
for (GraphicsDevice graphicsDevice :
import java.awt.Font;
import java.awt.font.FontRenderContext;
import java.awt.font.LineBreakMeasurer;
import java.awt.font.TextLayout;
import java.awt.geom.AffineTransform;
import java.text.AttributedCharacterIterator;
import java.text.AttributedString;
/**
* Measure the performance on both LineBreakMeasurer and Font.layoutGlyphVector for short strings.
@eirikbakke
eirikbakke / panama.sql
Created May 10, 2016 03:31
Panamapapers PostgreSQL import script
-- PostgreSQL import script for panamapapers CSV files available from https://panamapapers.icij.org/blog/20160509-offshore-database-release.html
-- First convert CSV files from MacRoman to UTF-8 encoding:
-- iconv -f MACROMAN -t UTF-8 Entities.csv > Entities-utf8.csv
-- iconv -f MACROMAN -t UTF-8 Addresses.csv > Addresses-utf8.csv
-- iconv -f MACROMAN -t UTF-8 Intermediaries.csv > Intermediaries-utf8.csv
-- iconv -f MACROMAN -t UTF-8 Officers.csv > Officers-utf8.csv
-- iconv -f MACROMAN -t UTF-8 all_edges.csv > all_edges-utf8.csv
drop table if exists addresses cascade;
package com.sieuferd.uiutil;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Rectangle;
import javax.swing.*;
public final class ScrollpaneTrackpadJitterBugExhibit extends JFrame {
private static final class ViewportPanel extends JPanel implements Scrollable {
public ViewportPanel() {
@eirikbakke
eirikbakke / LexerInputCharStream.java
Last active October 27, 2015 19:56
Updated LexerInputCharStream to avoid Guava dependency.
/*
The MIT License (MIT)
Copyright (c) 2015 Eirik Bakke
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
/*
The MIT License (MIT)
Copyright (c) 2015 Eirik Bakke
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
package com.sieuferd.harness;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.SystemFlavorMap;
import java.awt.datatransfer.Transferable;
import java.io.InputStream;
public final class FlavorMapBugExhibit {
private static final ZoneId UTC_ZONEID = ZoneId.of("UTC");
public double toDateDouble(Object value) {
long time = toDateLong(value);
time += getToLocalTimeZoneOffset(time);
final LocalDateTime ldt =
LocalDateTime.ofInstant(Instant.ofEpochMilli(time), UTC_ZONEID);
final long datePart = ldt.toLocalDate().toEpochDay() * (long) MILLISECONDS_PER_DAY +
MILLIS_BETWEEN_EPOCH_AND_1900;
final long timePart = ldt.toLocalTime().toNanoOfDay() / 1000000L;