IntelliJでSpringLoadedを利用する

こんにちは。beaglesoftの真鍋です。

SpringBootの開発をIntelliJで行うときにSpringLoadedを利用する方法です。

ネット上にはいろいろな情報があったのですが、StackOverflowに書いてあったとおりに設定してみたところ上手く動作しているようです。

Spring Boot + Spring-Loaded (IntelliJ, Gradle) - Stack Overflow

スクリーンショット 2016-09-09 23.10.07.png (52.3 kB)

設定した内容

IntelliJのSpringBootを実行する設定を変更します。

# Run > Edit Configurations 
# VM optionsに以下の値を設定します。
-javaagent:\pathto\lib\springloaded-1.2.5.RELEASE.jar -noverify

ここで設定する\pathto\lib\springloaded-1.2.5.RELEASE.jarですが、こちらからspringloaded-1.2.5.RELEASE.jarをダウンロードしてプロジェクト内またはどこかに保存したパスを設定すればOKです。

それにしても、このところのSpringBootの勢いはすごいですね。書籍も昨年のはじめてのSpring Boot―「Spring Framework」で簡単Javaアプリ開発 (I・O BOOKS) 以降何冊か出てきていて、これまでSpringをさわったことがなかったけどSpringBootからさわりはじめた私にとってはありがたい状況です。早速こちらでSpringについていろいろと知識を仕入れています。

Spring徹底入門 Spring FrameworkによるJavaアプリケーション開発

Spring徹底入門 Spring FrameworkによるJavaアプリケーション開発

とてもありがたいことですね。せっかくなので、Springを楽しみたいと思います。

Fieldsetで表題と罫線がアンバランスなのを修正する

こんにちは。beaglesoftの真鍋です。

弊社ではDHTMLXというJavaScriptのライブラリをTypeScriptを利用してWebアプリケーションを作成しています。そんな中で出てきた技術情報を少しずつ公開できればと思っています。

dhtmlxFormのFieldsetを利用する

dhtmlxにはさまざまなライブラリがありますが、特によく利用するものとしてdhtmlxFormがあります。これは入力フォームを作成するときには欠かせないライブラリになっています。

このdhtmlxFormですが、入力フォームを作成するためにいろいろな部品が提供されています。そんな中でも今回はFieldsetを利用したときにタイトルの罫線がずれることがあるので其の対応方法についてまとめました。

事象

入力フォームを作成するときには、データのまとまり毎にカテゴライズを行います。そのようなときにFieldsetを利用します。具体的には次のような入力画面です。

dhtmlxField1.png (7.7 kB)

ごくごく普通の入力画面です。しかし、赤枠で囲った部分を見てみると罫線の表示に違和感があります。特に、右の端は線が重なっているものの若干ずれていたりします。

まぁ、些細なことなので気にしなければいいという話もあるのですが、もう少しなんとかならないかとも思います。

対応してみた

そこで、とりあえずいろいろと試してみたのですがこのようになりました。

dhtmlxField2.png (8.2 kB)

線の重なりがずれたりすることなくそれらしく見えていると思います。

変更前

dhtmlxField1_n.png (6.9 kB)

変更後

dhtmlxField2_n.png (6.5 kB)

対応方法

対応方法ですが、CSSを修正することになります。といっても、本体のCSSを修正するのではなく画面描画後にCSSを修正するのでたいしたことではありません。

// windowの作成
const dhxWins = new dhtmlXWindows();
const window = dhxWins.createWindow("facility", 20, 30, 650, 700);

// formのアタッチ
const form = window.attachForm();

// データのロード
form.loadStruct(this.getFormJson(isEdit), () => {
    $(".fs_legend").css("width", 75);
});

loadStructメソッドの第2引数には完了時の処理を定義できるので、その中でCSSを変更しています。対象となるクラスはfs_legendでこの幅を文字数に合わせて調整すると表示が変更されます。

さいごに

dhmlxは日本で利用している会社はあまりないようですが、とても便利なライブラリですので是非利用してみてください。

JavaScript UI Library, Ajax Components & HTML5 Framework - DHTMLX

また、弊社ではシステム開発のお仕事を募集しております。お役に立てることがございましたらお声がけいただければと思います。

C#でバイト配列の生成

こんにちは。beaglesoftの真鍋です。

EntityFrameworkを利用しているとバイト配列を利用することは結構あると思います。SQL Serverのrowversion型は楽観制御のVersion列として利用することが多いですが、次のようにすると簡単に作成できます。

double d = 1d;
var target = BitConverter.GetBytes(d);
Console.WriteLine(BitConverter.ToString(target));

> 00-00-00-00-00-00-F0-3F

double型は64bitの浮動小数点なので、8バイトです。一方で、SQL Serverのrowversion型も8バイトです。そのため、double型の値からバイト配列を生成することで期待値を作成することができます。

double (C# リファレンス) rowversion.aspx)

もちろん、long型でも問題ないです。

void Main()
{
    var l = 1L;
    var target = BitConverter.GetBytes(l);
    Console.WriteLine(BitConverter.ToString(target));
}


> 01-00-00-00-00-00-00-00

long (C# リファレンス)

ちなみに、int型は32bitなのでこうなります。当たり前ですね。

void Main()
{
    var i = 1;
    var target = BitConverter.GetBytes(i);
    Console.WriteLine(BitConverter.ToString(target));
}

> 01-00-00-00

それにしてもLinqPadが便利ですね。